WM_COPYDATA方式, 为什么进程 B 收不到进程A 的消息?
进程 A:
m_Hwnd = ::FindWindow(NULL, _T("RecvMsgDlg"));
{
::BringWindowToTop(m_Hwnd);
::SendMessage(m_Hwnd, WM_COPYDATA, (WPARAM)GetFocus(), NULL);
}
进程 B (方式一):
BEGIN_MESSAGE_MAP(CRecvMsgDlgDlg, CDialog)
ON_WM_COPYDATA(WM_COPYDATA, OnCommonRecVMessage)
END_MESSAGE_MAP()
a
fx_msg LRESULT OnCommonRecVMessage(WPARAM wParam, LPARAM lParam);
LRESULT CRecvMsgDlgDlg::OnCommonRecVMessage(WPARAM wParam, LPARAM lParam)
{
//MessageBox(_T(" OnCommonRecVMessage "));
PostQuitMessage(WM_QUIT);
}
进程 B (方式二):
BEGIN_MESSAGE_MAP(CRecvMsgDlgDlg, CDialog)
ON_WM_COPYDATA()
END_MESSAGE_MAP()
BOOL CRecvMsgDlgDlg::OnCopyData(CWnd* pWnd, COPYDATASTRUCT* pCopyDataStruct)
{
MessageBox(_T(" OnCopyData "));
return CDialog::OnCopyData(pWnd, pCopyDataStruct);
}
WM_COPYDATA方式, 为什么进程 B 收不到进程A 的消息?
m_Hwnd = ::FindWindow(NULL, _T("RecvMsgDlg"));
{
::BringWindowToTop(m_Hwnd);
::SendMessage(m_Hwnd, WM_COPYDATA, (WPARAM)GetFocus(), NULL);
}
进程 B (方式一):
BEGIN_MESSAGE_MAP(CRecvMsgDlgDlg, CDialog)
ON_WM_COPYDATA(WM_COPYDATA, OnCommonRecVMessage)
END_MESSAGE_MAP()
a
fx_msg LRESULT OnCommonRecVMessage(WPARAM wParam, LPARAM lParam);
LRESULT CRecvMsgDlgDlg::OnCommonRecVMessage(WPARAM wParam, LPARAM lParam)
{
//MessageBox(_T(" OnCommonRecVMessage "));
PostQuitMessage(WM_QUIT);
}
进程 B (方式二):
BEGIN_MESSAGE_MAP(CRecvMsgDlgDlg, CDialog)
ON_WM_COPYDATA()
END_MESSAGE_MAP()
BOOL CRecvMsgDlgDlg::OnCopyData(CWnd* pWnd, COPYDATASTRUCT* pCopyDataStruct)
{
MessageBox(_T(" OnCopyData "));
return CDialog::OnCopyData(pWnd, pCopyDataStruct);
}
WM_COPYDATA方式, 为什么进程 B 收不到进程A 的消息?
...全文
相关推荐
Qt使用WM_COPYDATA消息进行进程通信 示例demo
Qt使用WM_COPYDATA消息进行进程通信 示例demo 代码博客: https://blog.csdn.net/qq_29542611/article/details/83478851
Windows进程通信之消息和WM_COPYDATA
danny_share博客Windows进程间通信之消息和WM_COPYDATA配套源码, 分为三个 MessageMain和MessageSubA和MessageSubB三个工程实现使用WM_COPYDATA进行进程间通信命令和传输数据 请不要F5运行,编译以后直接再debug目录里双击MessageMain.exe运行
WM_COPYDATA消息进程通信
使用WM_COPYDATA实现进程通信的实例
WM_COPYDATA进程消息传递实例MFC
源对话框发送WM_COPYDATA消息到目标对话框,目标对话框接受WM_COPYDATA消息,实现进程间消息的传递。该结构也可以传递一个结构体,但一定是“值类”,里面不能含有指针。
C# 软件之间通讯之WM_COPYDATA
不同C#之间通讯。



