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 的消息?