假设要为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()函数即可实现。