阅读:1060回复:7
VC的问题
不同进程之间能发消息吗?怎么用?
|
|
|
沙发#
发布于:2002-12-04 10:31
线程函数中用PostMessage发送消息
|
|
|
板凳#
发布于:2002-12-04 10:33
Of course,
You may attain the handle to the one of the windows created by the process, and then post your messages to its message queue by PostMessage |
|
地板#
发布于:2002-12-04 11:10
接受消息得AP:
UINT CMainFrame::m_uIdBroadcast; ON_REGISTERED_MESSAGE CMainFrame::m_uIdBroadcast,OnBroadcastMsg) CMainFrame::m_uIdBroadcast = ::RegisterWindowMessage(MSG_BROADCAST); 在OnBroadcastMsg里判断wparam是否是你要得(userdefinemessage),再处理它 /////////////////////////////////////////////// 发送消息得AP: CMainFrame::m_uIdBroadcast = ::RegisterWindowMessage(MSG_BROADCAST); ::BroadcastSystemMessage(BSF_IGNORECURRENTTASK | BSF_POSTMESSAGE,&dwRecipients, CMainFrame::m_uIdBroadcast, userdefinemessage,0); ////////////////////////////////////////////// 注:全局消息guidgen产生 #define MSG_BROADCAST \"{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}\" 大概是这样的,细节你去看msdn相关函数,两个ap之间发消息 |
|
|
地下室#
发布于:2002-12-04 20:21
当然可以.
楼上说的方法就行. 是在MFC程序里调用WIN32 SDK 实现注册消息. 然后再传送消息. 补充一下我. & :-) 主要注意:SENDMESSAGE 和POSTMESSAGE 的区别虽然他们的第一个参数在为HWND_BROADCAST 时, 把消息传送给所有顶级窗体. POSTMESSAGE 是把消息POST 到消息队列后就返回, 不等待消息处理完就返回. SENDMESSAGE 是必须等到消息被处理后才返回. 你是不是想在不同进程间传递数据呀? |
|
|
5楼#
发布于:2002-12-04 20:24
没说完就帖了......
你先得到目标进程的主窗体HNADLE. 然后在传. 说了这么多,,,,,,,你的进程不会没窗体吗? 没窗体.....MS OS 里当然不能传递消息了. |
|
|
6楼#
发布于:2002-12-04 21:15
该说的他们都替偶说了!
你的谢谢他们,给他们一定分! |
|
7楼#
发布于:2002-12-04 21:16
哇,果真打佬!!!
不服不行 |
|