----------------------------------
1)
#define WM_MYMESSAGE1 WM_USER + 1000
----------------------------------
2)
protected:
afx_msg LRESULT OnMyMessage1(WPARAM wParam, LPARAM lParam);
LRESULT CMFCTest1View::OnMyMessage1(WPARAM wParam, LPARAM lParam)
{
CMyObject *param = (CMyObject *) wParam;
AfxMessageBox("You have invoke OnMyMessage1: param value = " + param->name);
return 0;
}
----------------------------------
3)
BEGIN_MESSAGE_MAP(CMFCTest1View, CFormView)
ON_MESSAGE(WM_MYMESSAGE1, OnMyMessage1)
END_MESSAGE_MAP()
----------------------------------
4)
void CMFCTest1View::OnBnClickedButton1()
{
CMyObject *param = new CMyObject;
param->name = "bill gates";
SendMessage(WM_MYMESSAGE1, (WPARAM)param, 0);
delete param;
param = NULL;
}
1)
#define WM_MYMESSAGE1 WM_USER + 1000
----------------------------------
2)
protected:
afx_msg LRESULT OnMyMessage1(WPARAM wParam, LPARAM lParam);
LRESULT CMFCTest1View::OnMyMessage1(WPARAM wParam, LPARAM lParam)
{
CMyObject *param = (CMyObject *) wParam;
AfxMessageBox("You have invoke OnMyMessage1: param value = " + param->name);
return 0;
}
----------------------------------
3)
BEGIN_MESSAGE_MAP(CMFCTest1View, CFormView)
ON_MESSAGE(WM_MYMESSAGE1, OnMyMessage1)
END_MESSAGE_MAP()
----------------------------------
4)
void CMFCTest1View::OnBnClickedButton1()
{
CMyObject *param = new CMyObject;
param->name = "bill gates";
SendMessage(WM_MYMESSAGE1, (WPARAM)param, 0);
delete param;
param = NULL;
}
本文介绍了一个自定义Windows消息WM_MYMESSAGE1的实现方法。通过定义消息处理函数OnMyMessage1来响应该消息,并展示了如何使用CMyObject作为消息参数传递。此外,还演示了如何在界面上触发此自定义消息。

629

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



