VS2013如何在MFC工程中定义自己的消息映射函数

时间:2022-09-04 18:45:33
VS2013环境下,在创建的MFC工程 ThreadSendMSG中自定义消息映射函数需要以下几个步骤:
总共需要五步:
1.在 ThreadSendMSGDlg.h对话框的头文件中定义一个消息ID。
一般定义为:#define MY_MSG WM_USER+1
补充说明:
为了防止用户定义的消息ID与系统的消息ID冲突,MS(Microsoft)定义了一个宏WM_USER,小于WM_USER的ID被系统使用,大于WM_USER的ID被用户使用。所以必须要使自定义的消息ID大于WM_USER。具体值为多少不用关心。
VS2013如何在MFC工程中定义自己的消息映射函数
2. 在类的定义中添加消息处理成员函数的函数声明。
在头文件ThreadSendMSGDlg.h中的类声明中添加成员消息处理函数的函数声明。

VC6中,说可以把函数在头文件中定义为:afx_msg void OnProgress()。但是在VS2005及以上,要求很严格,必须函数返回值为LRESULT类型,所以在VS2005及以上,需要修改为

LRESULT afx_msg OnProgress(WPARAM, LPARAM); 其中,后面两个参数不管用不用得上,都要写。
3. 在类的消息映射表中加入相应的消息映射表项。
在类的实现文件 ThreadSendMSGDlg.cpp中为自定义的消息和消息处理函数添加消息映射。
格式固定:ON_MESSAGE(消息ID,消息处理函数名);
下面的声明也可以为其添加上类名
写作:ON_MESSAGE(UM_AA, &ThreadSendMSGDlg::OnAAA())
VS2013如何在MFC工程中定义自己的消息映射函数

4.在类的实现中加入该消息处理成员函数的函数实现。
注意:最后一定要返回一个TRUE;
VS2013如何在MFC工程中定义自己的消息映射函数