MFC-自定义消息
来源:互联网 发布:ubuntu命令行中文 编辑:程序博客网 时间:2024/04/30 23:36
微软定义的消息都是小于WM_USER的,所以我们想要自定义消息这个ID就要大于WM_USER,也就是16进制大于WM_USER对应的16进制.自定义消息有两种
方法一:直接定义消息
1.
//只要大于WM_USER就行#define WM_MY_MESSAGE (WM_USER+0x10)
2.写消息处理函数的声明
//这是规定的写法,写错了就映射不了了afx_msg LRESULT OnMyMessage(WPARAM wParam,LPARAM lParam);
3.消息映射
ON_MESSAGE(WM_MY_MESSAGE,CMFCTESTDlg::OnMyMessage)
4.写函数体
LRESULT CMFCTESTDlg::OnMyMessage(WPARAM wParam, LPARAM lParam){ //测试消息的Messagebox AfxMessageBox(TEXT("My message")); return 0;}
5.触发消息
void CMFCTESTDlg::OnBnClickedButton1(){ // TODO: 在此添加控件通知处理程序代码 //两种发送消息的方法 //PostMessage(WM_MY_MESSAGE); SendMessage(WM_MY_MESSAGE);}
效果如图:
方法2:消息注册函数
1.
//定义为一个字符串等会传入注册消息函数#define WM_MY_REGISTER_MESSAGE TEXT("My Register Message")
2.在构造函数中注册消息
返回的UINT定义为全局变量
UINT WM_MY_REGISTER_MSG = 0;
//注册消息,返回一个UINT的无符号整数 WM_MY_REGISTER_MSG = RegisterWindowMessage(WM_MY_REGISTER_MESSAGE);
3.消息函数声明
afx_msg LRESULT OnMyRegisterMessage(WPARAM wParam, LPARAM lParam);
4.消息映射
//注册消息要多加个REGISTEREDON_REGISTERED_MESSAGE(WM_MY_REGISTER_MSG,CMFCTESTDlg::OnMyRegisterMessage)
5.写函数体
LRESULT CMFCTESTDlg::OnMyRegisterMessage(WPARAM wParam, LPARAM lParam){ AfxMessageBox(TEXT("My Register Message")); return 0;}
6.触发消息
void CMFCTESTDlg::OnBnClickedButton2(){ // TODO: 在此添加控件通知处理程序代码 //两种发送消息的方法 //PostMessage(WM_MY_MESSAGE); SendMessage(WM_MY_REGISTER_MSG);}
效果如图:
0 0
- MFC 消息(缺自定义消息)
- MFC中自定义消息
- MFC自定义消息
- MFC中自定义消息
- MFC中自定义消息
- MFC自定义消息
- MFC 自定义消息四步曲
- MFC自定义消息
- MFC自定义消息
- MFC 自定义消息四步曲
- MFC 自定义消息四步曲
- MFC自定义消息
- MFC中自定义消息
- MFC 自定义消息
- MFC自定义消息
- MFC自定义消息
- MFC 自定义消息四步曲
- MFC 自定义消息
- httpclient 4.5.1---高级主题
- 第69课:Spark SQL通过Hive数据源JOIN实战 每天晚上20:00YY频道现场授课频道68917580
- shiro入门8:Shiro前几章复习
- 深入理解JavaScript系列(二): 原型、原型链与继承
- RunLoop应用场景
- MFC-自定义消息
- JVM运行时数据区域
- Java客户端与C++服务器端通信
- httpclient 4.5.1---连接管理器
- nginx信号控制
- smdk210 uboot移植
- 事务(Transaction)
- angular 双向绑定原理
- Ruby官方文档翻译(Ruby官方文档中文版)