第一步,在resource.h中添加 static UINT WM_MSG_MYMSG = RegisterWindowMessage(_T("msg"));
第二步,在消息接受的窗体,对话框的类的头文件.h添加
public:
afx_msg LRESULT OnMsgReceive(WPARAM wParam, LPARAM lParam);
第三步,在消息接受的窗体,对话框的类的实现文件.cpp添加
LRESULT 你的对话框类::OnMsgReceive(WPARAM wParam,LPARAM lParam)
{
//要做的事,其中 wParam 和 lParam 是消息发送过来的参数,用自定义指针强转一下就可以得到传递的值了
return 0;
}
第四步,在MESSAGE_MAP中添加映射
BEGIN_MESSAGE_MAP(你的对话框类, CDialogEx)
ON_REGISTERED_MESSAGE(WM_MSG_MYMSG,OnMsgReceive) //为消息添加映射函数
END_MESSAGE_MAP()
第五步,在你想发送消息的地方发送消息
void 子类对话框::Onxxx(...)
{
int r=5;
WPARAM a=(WPARAM)this;//子窗体的本身的实例指针
LPARAM b=(LPARAM)&r; //一个int
GetParent()->SendMessage(WM_MSG_MYMSG,a,b);
}
至此,子窗体向父窗体消息发送已经完成