16,473
社区成员
发帖
与我相关
我的任务
分享
//找到接收消息的窗口(窗口名为进程B)
CString str="进程B";
CWnd *pWnd=CWnd::FindWindow(NULL,str);
if(pWnd)
{
COPYDATASTRUCT buf;
char * s=new char[m_Msg1.GetLength()]; //m_Msg1为CString类型的变量
s=m_Msg1.GetBuffer(0);
buf.cbData=strlen(s)+1;
buf.lpData=s;
pWnd->SendMessage(WM_COPYDATA,0,(LPARAM)&buf); //传送大量数据要用WM_COPYDATA消息
}
void CSenderDlg::OnCommand1()
{
//找到接收消息的窗口(窗口名为Receiver)
CString str="Receiver";
CWnd *pWnd=CWnd::FindWindow(NULL,str);
if(pWnd)
pWnd->SendMessage(WM_COMM,0,0);
}
//发送命令二
void CSenderDlg::OnCommand2()
{
//找到接收消息的窗口(窗口名为Receiver)
CString str="Receiver";
CWnd *pWnd=CWnd::FindWindow(NULL,str);
if(pWnd)
pWnd->SendMessage(WM_COMM,0,1);
}
//发送命令三
void CSenderDlg::OnCommand3()
{
//找到接收消息的窗口(窗口名为Receiver)
CString str="Receiver";
CWnd *pWnd=CWnd::FindWindow(NULL,str);
if(pWnd)
pWnd->SendMessage(WM_COMM,1,0);
}
void CReceiverDlg::OnReceiveMsg(WPARAM wParam,LPARAM lParam)
{
if(wParam==0 && lParam==0)
AfxMessageBox("主控程序发送命令1!");
if(wParam==0 && lParam==1)
AfxMessageBox("主控程序发送命令2!");
if(wParam==1 && lParam==0)
AfxMessageBox("主控程序发送命令3!");
}