当前位置: 代码迷 >> WinCE >> 使用PostThreadMessage在进程间传递消息的疑惑,该如何处理
  详细解决方案

使用PostThreadMessage在进程间传递消息的疑惑,该如何处理

热度:73   发布时间:2016-04-28 13:25:14.0
使用PostThreadMessage在进程间传递消息的疑惑
在《multithreading   applications   in   Win32》这本书中看到,可以使用PostThreadMessage函数把消息发给另一个进程,但是我在wince环境的实际使用过程中却发现没有效果。
代码如下:
//进程base.exe创建进程son.exe
PROCESS_INFORMATION   pi;
CreateProcess(_T( "son.exe "),   NULL,   NULL,   NULL,  
        FALSE,   0,   NULL,   NULL,   NULL,   &pi);
//做些其它事
……
//希望使用PostThreadMessage关闭进程son.exe
//但是son.exe并没有关闭
//然而如果使用WM_QUIT消息是可以关闭son.exe的
PostThreadMessage(pi.dwThreadId,   WM_DESTROY,   0,   0);

问题就是使用WM_DESTROY或WM_CLOSE为什么不能关闭son.exe?
另外使用PostMessage函数可以关闭son.exe
代码如下:
//son为son.exe的标题
HWND   hWnd   =   FindWindow(0,   _T( "son "));
PostMessage(hWnd,   WM_DESTROY,   0,   0);

希望哪位高手可以帮我解答。

------解决方案--------------------
WM_DESTROY或WM_CLOSE消息应该是发给窗口的,但是PostThreadMessage函数不能给窗口发消息,应该用PostMessage函数。