一个进程A(一个窗口)中有如下代码://找到接收消息的窗口(窗口名为进程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消息
}如何在另外一个进程B(一个窗口)中收到上述进程中发出的消息?主要想实现的功能是进程A中的字符串发给B,然后在B中显示...
判断wParam=和lParam的值试过,貌似不行.....
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消息
}如何在另外一个进程B(一个窗口)中收到上述进程中发出的消息?主要想实现的功能是进程A中的字符串发给B,然后在B中显示...
判断wParam=和lParam的值试过,貌似不行.....
解决方案 »
- 对话框程序如何响应按键消息
- CFileDialog另存为时,保存的目录下有一样的文件时的处理代码问题?
- 问一个关于继承的问题
- 为啥string不支持cout的<<操作?忧闷,还请高手指教!
- 求助!关于opengl下物体坐标的获取。
- 关于显示大容量位图的问题
- PeekMessage 和 GetMessage, SendMessage 和 PostMessage 有什么区别?
- Unicode和多字节的属性
- VC封装ADO类出现问题,因该是这段出了问题,各位大虾帮忙呀
- 请问:怎样将一个文件隐藏?(当然不是选中"显示隐藏文件"选项可以看得到)
- 请教下 这个怎么编译都出问题
- 请教下,一个CListCtrl,如何控制其列宽呢?
s=m_Msg1.GetBuffer(0);
=========这代码有内存泄漏啊.根本不需要用new分配空间
代码如下:
进程Sender:
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);
}进程Receiver:
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!");
}