自定义消息分为五步:
- 第一步:在.h文件中定义消息
#define (自定义消息名) WM_USER+1001
//例如:#define WM_MYMESSAGE WM_USER+1001
- 第二步:在要响应的类的.h文件的AFX_MSG块中声明消息处理函数:
eg: afx_msg LRESULT ONMYMessage(WPARAM wParam, LPARAM lParam);
- 第三步:再要响应的类的.cpp文件中增加消息映射部分:
eg: ON_MESSAGE(WM_MYMESSAGE, ONMYMessage)
*注意,第三步和第四步可以在类向导中完成*
- 第四步:在要响应的类的.cpp中定义消息处理函数的实现:
LRESULT 类名::ONMYMessage(WPARAM wParam, LPARAM lParam)
{
//对应的处理;注意这个方法名和第二步声明的方法名
}
- 第五步:发送消息
//方法1:
HWND hwnd = ::GetParent(m_hWnd);//要接受消息的窗口的类的指针
SendMessage(hwnd,WM_MYMESSAGE,a,b);
//方法2:
PostMessage(GetSafeHwnd(), WM_USER_THREADEND, 0, 0);
//其中GetSafeHwnd()得到了一个当前窗口的句柄.如果想发送消息给其它窗口只需改变这个句柄
本文详细介绍了自定义消息处理的五个步骤,包括定义消息、声明消息处理函数、消息映射、实现消息处理函数以及发送消息的方法。适用于Windows消息处理场景。
5641

被折叠的 条评论
为什么被折叠?



