怎么在vs的mfc中添加自定义消息
答案:1 悬赏:40 手机版
解决时间 2021-03-20 15:28
- 提问者网友:活着好累
- 2021-03-20 03:24
怎么在vs的mfc中添加自定义消息
最佳答案
- 五星知识达人网友:荒野風
- 2021-03-20 04:19
1 发送消息
首先在A的头文件中定义这个消息:
[cpp] view plaincopy
#define WM_USERMESSAGE WM_USER+100
所有自定义消息都是以WM_USER消息为基础加上一个任意的自然数来表示的。
2 接受消息
对象接受一个消息,应该有三部分:在头文件中有该消息的处理函数的原型;在实现文件中有接受消息映射的宏;以及该消息的处理函数的具体实现。
2.1 头文件中加上自定义消息的处理函数原型
在DECLARE_MESSAGE_MAP()语句之前,一对AFX_MSG之间加上如下形式的函数原型:
afx_msg LRESULT OnProcName( WPARAM wParam, LPARAM lParam);
对Win32来说,wParam, lParam是传递消息最常用的手段。
2.2 在实现文件中加上接受消息映射的宏
在cpp文件里,BEGIN_MESSAGE_MAP语句之后,在一对BEGIN_MESSAGE_MAP(ThisClass, BaseClass)与END_MESSAGE_MAP()之间,增加 如下形式的代码:
[cpp] view plaincopy
ON_MESSAGE(WM_USERMESSAGE, OnProcName)
或
[cpp] view plaincopy
ON_THREAD_MESSAGE(WM_USERMESSAGE, OnProcName)
上面是不用分号结尾的。
2.3 在实现文件中给出消息处理函数的具体实现。
首先在A的头文件中定义这个消息:
[cpp] view plaincopy
#define WM_USERMESSAGE WM_USER+100
所有自定义消息都是以WM_USER消息为基础加上一个任意的自然数来表示的。
2 接受消息
对象接受一个消息,应该有三部分:在头文件中有该消息的处理函数的原型;在实现文件中有接受消息映射的宏;以及该消息的处理函数的具体实现。
2.1 头文件中加上自定义消息的处理函数原型
在DECLARE_MESSAGE_MAP()语句之前,一对AFX_MSG之间加上如下形式的函数原型:
afx_msg LRESULT OnProcName( WPARAM wParam, LPARAM lParam);
对Win32来说,wParam, lParam是传递消息最常用的手段。
2.2 在实现文件中加上接受消息映射的宏
在cpp文件里,BEGIN_MESSAGE_MAP语句之后,在一对BEGIN_MESSAGE_MAP(ThisClass, BaseClass)与END_MESSAGE_MAP()之间,增加 如下形式的代码:
[cpp] view plaincopy
ON_MESSAGE(WM_USERMESSAGE, OnProcName)
或
[cpp] view plaincopy
ON_THREAD_MESSAGE(WM_USERMESSAGE, OnProcName)
上面是不用分号结尾的。
2.3 在实现文件中给出消息处理函数的具体实现。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯