MFC.自定义消息

.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;
}
posted @ 2020-03-16 21:19  N.everever  阅读(147)  评论(0)    收藏  举报