发送端:
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); }
版权声明:本文为博主原创文章,未经博主允许不得转载。