.h
...
#define WM_USER_SELF (WM_USER + 12345) /*步骤1,定义消息类型值*/
...
class CMFC?Dlg : public CDialogEx
{
...
public:
afx_msg void OnBnClickedButton1();
afx_msg LRESULT OnMsgSelf(WPARAM wParam, LPARAM lParam); /*步骤2,声明消息函数*/
/*函数原型LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)*/
};
.cpp
...
BEGIN_MESSAGE_MAP(CMFC自定义消息Dlg, CDialogEx)
ON_MESSAGE(WM_USER_SELF, OnMsgSelf) /*步骤3,映射消息*/
...
END_MESSAGE_MAP()
...
void CMFC?Dlg::OnBnClickedButton1()
{
// 自定义消息
::SendMessage(GetSafeHwnd(), WM_USER_SELF, 0, 0); /*步骤5,调用自定义消息*/
}
LRESULT CMFC?Dlg::OnMsgSelf(WPARAM wParam, LPARAM lParam) /*步骤4,定义消息函数*/
{
::MessageBox(0, _T("Text"), _T("Caption"), 0);
return 0;
}
原文:https://www.cnblogs.com/dailycode/p/12506852.html