发送端:
void CTestExeDialogDlg::OnBUTTONsendMsg()
{
// TODO: Add your control notification handler code here
/*
CString str="single_vc6";
CWnd *pWnd=CWnd::FindWindow(NULL,str);
if(pWnd)
pWnd->SendMessage(WM_TESTSENDMSG_SINGLE,1,0);
*/
COPYDATASTRUCT cpd;
// Datebag data;
Datebag *p_data=(Datebag *)malloc(sizeof(Datebag));
p_data->a=1;
p_data->b=10;
strcpy(p_data->c,"message");
LRESULT copyDataResult;
CWnd *pOtherWnd = CWnd::FindWindow(NULL, "single_vc6");
cpd.dwData = 0;
cpd.cbData = sizeof(Datebag);
cpd.lpData = p_data;
copyDataResult = pOtherWnd->SendMessage(WM_COPYDATA,0,(LPARAM)&cpd);
}
注意:copydata是不能使用PostMessage的
接受端:
BOOL CMainFrame::OnCopyData(CWnd* pWnd, COPYDATASTRUCT* pCopyDataStruct)
{
// TODO: Add your message handler code here and/or call default
Datebag *p_data;
p_data=(Datebag *)pCopyDataStruct->lpData;
if(p_data->a==1&&p_data->b==10)
{
MessageBox(_T(p_data->c),NULL,MB_OK);
}
return CFrameWnd::OnCopyData(pWnd, pCopyDataStruct);
}