您的位置:首页 > 其它

MFC中自定义消息过程

2014-05-29 10:36 288 查看
这几天接触一个MFC自定义消息,但是之前没用过,犯了一个低级错误,粘贴出来供大家参考。

下图是Windows消息图示:



有用户自定义消息的一些范围。以一个具体的例子介绍使用方法:

第一步:本人定义一个消息

#define WM_ShowTask WM_USER+1 // WM_ShowTask是自己定义的消息, ShowTask是自己定义的消息名称,WM_USER表示自己定义消息,上图有解释,有范围的

第二步:我用的是MFC dialog程序,我在XXdlg.cpp里面定义一个自己需要的消息处理函数

LRESULT CxxDlg::OnShowTask(WPARAM wParam,LPARAM lParam) //函数类型根据自己需要自己定义,WPARAM ,LPARAM 是消息响应机制,很灵活的两个变量

{

}

第三步:在.cpp里面定义了处理函数,就需要在xxdlg.h里面对函数进行声明,

afx_msg LRESULT OnShowTask(WPARAM wParam,LPARAM lParam); //函数类型自定义

第四步:将消息映射到处理函数,简单来说就是将消息和处理函数绑定

BEGIN_MESSAGE_MAP(CxxDlg, CDialog)

//{{AFX_MSG_MAP(CShutdownDlg)

ON_MESSAGE(WM_ShowTask,OnShowTask)

END_MESSAGE_MAP()

注意这里的位置,本人就在载在这上面,一般的Dialog程序,有两个BEGIN_MESSAGE_MAP() .......END_MESSAGE_MAP,一个是自己的CxxDlg,另一个是系统里的CAboutDlg.我们要在自己需要的Cxxdlg的BEGIN_MESSAGE_MAP()处定义,所以各位大侠看仔细了,否则就会出现错误提示:“****,未定义”;“****,类型不能转换”之类的错误,所以看清楚位置很重要。

好了介绍到此结束,有问题请留言,有错误也请留言,毕竟本人也是出于学习的过程,有错误欢迎指正。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: