MFC-进程间消息传递
程序员文章站
2022-07-14 20:37:15
...
在涉及到将一个进程的信息发送到另一个进程的消息,并让另一个进行消息处理,通常需要涉及到进程间通讯。
- 分别在两个进程间定义消息;
- 在要接受的进程间定义消息映射;
- 在发送消息的进程进行消息触发;
在进行发送消息的进程首先获取到接受进程的句柄,通过定义的消息进行发送消息,在接受进程定义对应的消息映射;
在发送进程定义消息:
#define MESS_1 WM_USER + 111
#define MESS_2 WM_USER + 112
#define MESS_3 WM_USER + 113
#define MESS_4 WM_USER + 114
#define MESS_5 WM_USER + 115
#define MESS_6 WM_USER + 116
#define MESS_7 WM_USER + 117
在发送进程获取接受进程的句柄:
HWND m_hAdaptorWnd = NULL;
CString strfilename(buf);
strfilename.Append( _T("Driver\\HM_UDMGenTest.exe"));
WinExec(strfilename,SW_HIDE);
CString str = _T("打标软件DEMO"); //要查找的窗体名称
m_hAdaptorWnd = FindWindow(NULL,str);
ShowWindow(m_hAdaptorWnd,SW_HIDE);
if(!m_hAdaptorWnd)
{
CDebug::ShowDetailMessage("HM_UDMGenTest do not start!");
}
在发送进程进行消息传递:
::SendMessage(m_hAdaptorWnd,MESS_1,(WPARAM)0,(LPARAM)0);
::SendMessage(m_hAdaptorWnd,MESS_2,(WPARAM)0,(LPARAM)0);
::SendMessage(m_hAdaptorWnd,MESS_3,(WPARAM)0,(LPARAM)0);
::SendMessage(m_hAdaptorWnd,MESS_4,(WPARAM)0,(LPARAM)0);
::SendMessage(m_hAdaptorWnd,MESS_5,(WPARAM)0,(LPARAM)0);
::SendMessage(m_hAdaptorWnd,MESS_6,(WPARAM)0,(LPARAM)0);
::SendMessage(m_hAdaptorWnd,MESS_7,(WPARAM)0,(LPARAM)0);
在接受进程中定义进程:
#define MESS_1 WM_USER + 111
#define MESS_2 WM_USER + 112
#define MESS_3 WM_USER + 113
#define MESS_4 WM_USER + 114
#define MESS_5 WM_USER + 115
#define MESS_6 WM_USER + 116
#define MESS_7 WM_USER + 117
在接受进程中定义消息映射:
在头文件中定义进行声明:
DECLARE_MESSAGE_MAP()
XXX1
XXX2
XXX3
XXX4
XXX5
XXX6
XXX7
在对应的.cpp文件实现:
BEGIN_MESSAGE_MAP(ClassName,BasedName)
ON_MESSAGE(MESS_1,XXX1)
ON_MESSAGE(MESS_2,XXX2)
ON_MESSAGE(MESS_3,XXX3)
ON_MESSAGE(MESS_4,XXX4)
ON_MESSAGE(MESS_5,XXX5)
ON_MESSAGE(MESS_6,XXX6)
ON_MESSAGE(MESS_7,XXX7)
END_MESS_MAP
在接受消息进程中处理相应的映射函数:
XXX1()
XXX2()
XXX3()
XXX4()
XXX5()
XXX6()
XXX7()
上一篇: 字符串循环左移
下一篇: Caused by: java.lang.NoSuchMethodError: org.apache.ibatis.session.Configuration.setVfsImpl(Ljava/lan
推荐阅读
-
详解linux进程间通信-消息队列
-
Linux消息队列实现进程间通信实例详解
-
一起talk C栗子吧(第九十七回:C语言实例--使用消息队列进行进程间通信一)
-
一起talk C栗子吧(第九十八回:C语言实例--使用消息队列进行进程间通信二)
-
PHP下操作Linux消息队列完成进程间通信的方法
-
MFC-进程间消息传递
-
Android线程间消息传递Handler、Looper、MessageQueue
-
Linux进程间通信(消息队列/信号量+共享内存)
-
Android进程间通信--消息机制及IPC机制实现 AndroidOS音乐Schemethread
-
Android进程间通信--消息机制及IPC机制实现 AndroidOS音乐Schemethread