VC中如何实现自定义消息
假设要为CMymessageDlg对话框定义一个自定义的消息,步骤如下:
1. 在CMymessageDlg的头文件中添加如下宏定义:
#define WM_MYMESSAGE (WM_USER+100)
2. 在CMymessageDlg的头文件中添加如下函数声明:
afx_msg void OnMymessage(WPARAM wParam, LPARAM lParam);
注意:在.net 2003中此处应该将void 换成LRESULT负责会出现如下错误:
“static_cast” : 无法从“void (__thiscall CMymessageDlg::* )(WPARAM,LPARAM)”转换为“LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)”
3. 在CMymessageDlg的cpp文件中的BEGIN_MESSAGE_MAP和END_MESSAGE_MAP之间添加如下代码:
ON_MESSAGE(WM_MYMESSAGE, OnMymessage)
注意语句最后不要包含分号。
4.在CMymessageDlg的cpp文件中添加OnMymessage的实现函数
如何发送自定义的消息:
使用PostMessage()函数即可实现。