1,知道接收消息進程的句柄。
2,接收消息進程重載了WM_COPYDATA消息映射
發送端
void CSendDlg::OnBnClickedSend()
{
CWnd *pWnd = CWnd::FindWindow(NULL, " 接收窗口的標題 ");
CString sCopyData = " 傳遞的字符串 ";
COPYDATASTRUCT cpd;
cpd.dwData = 0;
cpd.cbData = sCopyData.GetLength() + 1; // 多加一個長度,防止亂碼
cpd.lpData = ( void*)sCopyData.GetBuffer(cpd.cbData);
pWnd->SendMessage(WM_COPYDATA,NULL,(LPARAM)&cpd);
}
{
CWnd *pWnd = CWnd::FindWindow(NULL, " 接收窗口的標題 ");
CString sCopyData = " 傳遞的字符串 ";
COPYDATASTRUCT cpd;
cpd.dwData = 0;
cpd.cbData = sCopyData.GetLength() + 1; // 多加一個長度,防止亂碼
cpd.lpData = ( void*)sCopyData.GetBuffer(cpd.cbData);
pWnd->SendMessage(WM_COPYDATA,NULL,(LPARAM)&cpd);
}
//
聲明
afx_msg BOOL OnCopyData(CWnd* pWnd, COPYDATASTRUCT* pCopyDataStruct);
// 實現
ON_WM_COPYDATA()
BOOL CReceiveDlg::OnCopyData( CWnd* pWnd, COPYDATASTRUCT* pCopyDataStruct )
{
AfxMessageBox((LPCSTR)(pCopyDataStruct->lpData));
return CWnd::OnCopyData(pWnd, pCopyDataStruct);
}
afx_msg BOOL OnCopyData(CWnd* pWnd, COPYDATASTRUCT* pCopyDataStruct);
// 實現
ON_WM_COPYDATA()
BOOL CReceiveDlg::OnCopyData( CWnd* pWnd, COPYDATASTRUCT* pCopyDataStruct )
{
AfxMessageBox((LPCSTR)(pCopyDataStruct->lpData));
return CWnd::OnCopyData(pWnd, pCopyDataStruct);
}
url: http://greatverve.cnblogs.com/archive/2012/12/17/WM_COPYDATA.html