MFC自定义控件如何向父窗口发送自定义消息
自定义了一个控件
|
class CHtmlEditCtrlEx : public CHtmlEditCtrl |
想在这个控件接收到Ctrl+V键盘消息的时候,向该控件所在的窗口发送一个自定义消息。具体实现方法如下:
- 在该控件的PreTranslateMessage方法中定义自定义消息,然后将该消息发送给父窗口
|
BOOL CHtmlEditCtrlEx::PreTranslateMessage(MSG* pMsg) {
int WM_HENRYPASTE = RegisterWindowMessage(TEXT("HENRYPASTE"));
int aa = 0; if (pMsg->message == WM_KEYDOWN) { switch (pMsg->wParam) { case if( ::GetKeyState(VK_CONTROL) & 0x8000 ) { GetParent()->SendMessage(WM_HENRYPASTE, pMsg->wParam, pMsg->lParam);
} break; } }
return CHtmlEditCtrl::PreTranslateMessage(pMsg);
} |
- 在控件所在窗口的.h文件中定义消息处理函数。

- 在控件所在的窗口类的.cpp文件中,在文件的头部定义这个消息。

- 在消息映射中映射这个消息。

- 然后实现这个消息处理函数:
|
LRESULT CDialog2::OnHenryPaste(WPARAM wParam, LPARAM lParam) { // do something useful int MyReturnValue = 0;
return (LRESULT) MyReturnValue; }; |
这样当自定义控件接收到CTRL+V的键盘消息时,父窗口的处理函数就能被执行了。
MFC自定义控件如何向父窗口发送自定义消息的更多相关文章
- SendMessage发送自定义消息及消息响应
控件向父窗体发送自定义消息,父窗体定义处理此消息的函数 效果描述: 指定哪个类添加自定义消息:(当然这个类必须是CmdTarget的子类,不然不能处理消息) 添加消息 实现消息函数:(wParam ...
- SendMessage发送自定义消息及消息响应(VC版)
控件向父窗体发送自定义消息,父窗体定义处理此消息的函数 程序源代码(整个工程)下载:http://download.csdn.net/detail/qq2399431200/6274793 效果描述 ...
- MFC发送自定义消息-PostMessage和SendMessage
PostMessage:把消息投放到线程的消息队列,不能消息被处理就立即返回SendMessage:消息被处理完后才返回 几种发送消息的写法: ::PostMessage(GetSafeHwnd( ...
- MFC子窗口和父窗口
转载声明: 本文转载自:http://www.cnblogs.com/BeyondTechnology/archive/2011/03/25/1995934.html 感谢BeyondTechnolo ...
- MFC子窗口和父窗口(SetParent,SetOwner)
一.概念和区别 在windows系统中,每个窗口对象都对应有一个数据结构,形成一个list链表.系统的窗口管理器通过这个list来获取窗口信息和管理每个窗口.这个数据结构中有四个数据用来构建list, ...
- mfc窗口,父窗口parentwindow,所有者窗口ownerwindow 区别
一. parent:创建者,owner:所有者 小玉的父母生下小玉,养到8岁,卖给贾府当丫头小玉的父母是parent,贾府是owner 二. 1.Pop-up窗口: 一个弹出窗口是必须具有WS_POP ...
- 【MFC】如何在MFC创建的程序中更改主窗口的属性 与 父窗口 WS_CLIPCHILDREN 样式 对子窗口刷新的影响 与 窗体区域绘制问题WS_CLIPCHILDREN与WS_CLIPSIBLINGS
如何在MFC创建的程序中更改主窗口的属性 摘自:http://blog.sina.com.cn/s/blog_4bebc4830100aq1m.html 在MFC创建的单文档界面中: (基于对话框的, ...
- MFC关闭子窗口 如何把父窗口也一起关闭
在子窗口OnClose() 消息里添加: GetParent()->DestroyWindow();//子窗口关闭 父窗口也同样关闭
- 【转】vc中使用SendMessage正确发送自定义消息的方法--不错
原文网址:http://zhoumf1214.blog.163.com/blog/static/5241940200910265532959/ 最近在用VC2008做开发,后来由于要用到消息的发送,而 ...
随机推荐
- spring cloud 学习(11) - 用fastson替换jackson及用gb2312码输出
前几天遇到一个需求,因为要兼容旧项目的编码格式,需要spring-cloud的rest接口,输出gb2312编码,本以为是一个很容易的事情,比如下面这样: @RequestMapping(method ...
- resteasy经验谈
resteasy 是java体系中比较成熟的rest框架,也是jax-rs规范的实现之一,dubbox的REST服务框架,就是采用的resteasy实现,近日在实际项目中遇到了几个问题,记录于此: ...
- SWD Registers
- 荣耀 6 安装 SD 卡,提示:SD卡已安全移除
先前买了个 荣耀6(购买链接),自带存储只有 16G,用来一段时间后,老是提示存储不足.后来发现是 微信 等软件占用了好多存储(缓存),, 好吧,在京东上买了个 64G 扩展卡(购买链接),安装过程如 ...
- Java集合框架顶层接口collectiion接口
如何使用迭代器 通常情况下,你会希望遍历一个集合中的元素.例如,显示集合中的每个元素. 一般遍历数组都是采用for循环或者增强for,这两个方法也可以用在集合框架,但是还有一种方法是采用迭代器遍历集合 ...
- .NET:不要使用扩展方法扩展Object对象。
C#的扩展方法算是一种Minin(掺入)机制,掺入方法有其合理的使用场景,这里说说一种不好的使用场景(个人意见):不要使用扩展方法扩展Object对象.扩展Object会对所有类型的示例有侵入,特别是 ...
- rtsp实现的开源代码
* live.com C/S C++ http://www.live555.com * darwin S C++ http://www.opensource.apple ...
- 一幅图秒懂LoadAverage(负载)
转自:http://www.habadog.com/2015/02/27/what-is-load-average/ 一幅图秒懂LoadAverage(负载) 一.什么是Load Average? ...
- geth 命令
{ admin: { datadir: "/home/.ethereum/.ethereum", nodeInfo: { enode: "enode://a974839a ...
- composer - No business network has been specified for this connection 解决方案
I have installed hyperledger composer locally. But on localhost it gives error : Error : Error tryin ...