自定义消息
#define WM_MY_MESSAGE (WM_USER+100)
2. 声明消息处理函数
例:选择CMainFrame类中添加消息处理函数
在MainFrm.h文件中,类CMainFrame内,声明消息处理函数,代码如下:
(
如果用户需要一个定义整个系统唯一的消息, 可以调用SDK函数RegisterWindowMessage定义消息:
在Resource.h中将代码
#define WM_MY_MESSAGE (WM_USER+100)
替换为:
static UINT WM_MY_MESSAGE=RegisterWindowMessage(_T("User"));
并使用ON_REGISTERED_MESSAGE宏指令取代ON_MESSAGE宏指令,其余步骤同上。
注:如果仍然使用ON_MESSAGE宏指令,compile可以通过,但是无法响应消息。
1. 定义消息
//推荐用户自定义消息至少是WM_USER+100,因为很多新控件也要使用WM_USER消息。#define WM_MY_MESSAGE (WM_USER+100)
2. 声明消息处理函数
例:选择CMainFrame类中添加消息处理函数
在MainFrm.h文件中,类CMainFrame内,声明消息处理函数,代码如下:
protect:
afx_msg LRESULT OnMyMessage(WPARAM wParam, LPARAM lParam);
3. 实现消息处理函数
在MainFrm.cpp文件中添加如下代码:LRESULT CMainFrame::OnMyMessage(WPARAM wParam, LPARAM lParam)
{
//TODO: Add your message handle code
return 0;
}
4. 在CMainFrame类的消息块中,使用ON_MESSAGE宏指令将消息映射到消息处理函数中
BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
ON_MESSAGE(WM_MY_MESSAGE,OnMyMessage)
//ON_REGISTERED_MESSAGE (WM_MY_MESSAGE,OnMyMessage)
END_MESSAGE_MAP()
(
如果用户需要一个定义整个系统唯一的消息, 可以调用SDK函数RegisterWindowMessage定义消息:
在Resource.h中将代码
#define WM_MY_MESSAGE (WM_USER+100)
替换为:
static UINT WM_MY_MESSAGE=RegisterWindowMessage(_T("User"));
并使用ON_REGISTERED_MESSAGE宏指令取代ON_MESSAGE宏指令,其余步骤同上。
注:如果仍然使用ON_MESSAGE宏指令,compile可以通过,但是无法响应消息。
)
例:AfxGetMainWnd()->SendMessage(MY_MESSAGE,NULL,0);