MFC中,利用消息机制,实现跨进程间的通信

版权声明:----------------------------未经博主允许, 随意转载---------------------------- https://blog.csdn.net/yulinxx/article/details/49279609

MFC中,利用消息机制,实现跨进程间的通信:

VS2012 Win7 64Bit环境



发送端程序(有OpenGL绘制的这个):

CMFCWithOpenGLView.h 中定义消息
#define WM_CONTROL WM_USER+1001

CMFCWithOpenGLView.cpp 中,中键点击发送消息:
void CMFCWithOpenGLView::OnMButtonUp(UINT nFlags, CPoint point)
{
// 获取接收窗口句柄
CWnd *pWnd=CWnd::FindWindow(NULL,_T("MFCDlg"));
if(pWnd==NULL)
{
AfxMessageBox(_T("接收程序没有运行!"));
return ;
}
//发送消息
static int n = 0;
pWnd->SendMessage(WM_CONTROL,NULL, n);
n++;
CView::OnMButtonUp(nFlags, point);
}


接收端:(后面的程序)
程序命名为:MFCDlg 用于在发送端的查询 
(发送端中有:CWnd *pWnd=CWnd::FindWindow(NULL,_T("MFCDlg")); 进行查询)
CMFCDlgDlg.h 中,同样需定义与发送端一样的消息名:
#define WM_CONTROL WM_USER+1001


以及一个针对此消息的处理函数:
afx_msg LRESULT OnControlPrint(WPARAM wParam,LPARAM lParam);


然后将消息与处理函数进行关联起来:
ON_MESSAGE(WM_CONTROL, OnControlPrint)


处理函数就是实现传递过来的数据显示即可:
将静态文本定义一个变量 ,然后赋值,刷新
LRESULT CMFCDlgDlg::OnControlPrint(WPARAM wParam,LPARAM lParam)
{
int n = (int)lParam;
m_nRecv = lParam;
UpdateData(FALSE);
return 1;
}



http://download.csdn.net/detail/yulinxx/9197223

代码。。。 内含OpenGL,可以删除

猜你喜欢

转载自blog.csdn.net/yulinxx/article/details/49279609
今日推荐