mfc自定义消息用法,mfc自定义消息映射
消息映射和循环机制是Windows程序运行的基本方式。MFC中有很多现成的消息句柄,但是当我们需要完成其他任务和自定义消息时,就会遇到一些困难。MFC ClassWizard中不允许添加用户自定义消息,所以我们必须在程序中添加相应的代码,这样我们才能像处理其他消息一样处理自定义消息。通常的做法是采取以下步骤:
步骤1:定义消息。
建议用户自定义消息至少为WM_USER 100,因为很多新控件也使用WM_USER消息。#定义WM_MY_MESSAGE (WM_USER 100)
第二步:实现消息处理功能。该函数使用WPRAM和LPARAM参数,并返回LPESULT。LPESULT CMainFrame:onmy message(WPARAM WPARAM,LPARAM lParam)
{
//TODO:处理用户定义的消息
.
返回0;
}
第三步:解释类头文件AFX_MSG块中的消息处理函数:classcmainframe:public cmdiframenews。
{
.
//通用消息映射函数
受保护:
//{{AFX_MSG(CMainFrame)
afx _ msg int OnCreate(LPCREATESTRUCT LPCREATESTRUCT);
afx _ msg void on timer(UINT nIDEvent);
afx _ msg LRESULT onmy message(WPARAM WPARAM,LPARAM LPARAM);
//}}AFX_MSG
声明消息映射()
}
步骤4:在user类的message块中,使用ON_MESSAGE宏指令将消息映射到消息处理函数。BEGIN_MESSAGE_MAP(CMainFrame,CMDIFrameWnd)
//{{AFX_MSG_MAP(CMainFrame)
ON_WM_CREATE()
ON_WM_TIMER()
ON_MESSAGE(WM_MY_MESSAGE,OnMyMessage)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
出发地:http://www.builder.com.cn/2007/1016/559150.shtml