您的位置:首页 > 其它

将自定义消息发给所有顶层窗口(MFC)

2017-08-10 17:36 281 查看
发送端

在头文件,注册消息并保存消息值(发全局消息好像一定要注册):

const UINT WM_MYONRECVMSG = ::RegisterWindowMessage(_T("ONRECEIVE"));
//_T()内的字符串与接收端要一致


在需要发送的地方:

::PostMessage(HWND_BROADCAST, WM_MYONRECVMSG, 0, 0);


接收端

头文件中,注册消息并保存消息值:

const UINT WM_MYONRECVMSG = ::RegisterWindowMessage(_T("ONRECEIVE"));
//_T()内的字符串与发送端要一致


C***Dlg.h中,定义用来处理消息的函数(返回值与参数好像都是固定的):

afx_msg LRESULT OnMyReceiveMsg(WPARAM wParam, LPARAM lParam);


C***Dlg.cpp中,完成消息映射:

BEGIN_MESSAGE_MAP(CSocketMFC810aDlg, CDialogEx)
//ON_WM_SYSCOMMAND()
//ON_WM_PAINT()
//ON_WM_QUERYDRAGICON()
ON_REGISTERED_MESSAGE(WM_MYONRECVMSG, OnMyReceiveMsg)//注意消息值与函数名,要与上述一致
END_MESSAGE_MAP()


C***Dlg.cpp中,实现消息响应函数:

LRESULT C***Dlg::OnMyReceiveMsg(WPARAM wParam, LPARAM lParam)
{
AfxMessageBox(_T("OnMyReceiveMsg"));//弹出提示窗口验证已接收消息
return 0;
}


参考: 进程间通信 1 – 使用RegisterWindowMessage实现消息通信
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mfc broadcast wm