PostThreadMessage的用法

来源:互联网 发布:拜占庭知乎 编辑:程序博客网 时间:2024/06/06 02:05

同一进程不同线程之间

1. 编写线程函数

UINT AFX_CDECL ThrdTest(LPVOID lpParam){    MSG msg;    while (::GetMessage(&msg, NULL, 0, 0))    {        switch(msg.message)        {        case WM_XXX:        {...}            break;        ......        default:            break;        }    }    return 0;}

2. 启动线程

UINT AFX_CDECL ThrdTest(LPVOID); AfxBeginThread(ThrdTest, ...);

3. 向线程发送消息

::PostThreadMessage(nThrdId, WM_XXX, wParam, lParam);

不同进程之间

1. 进程I

#include <iostream>#include <Windows.h>using namespace std;int main(){    MSG msg;    while (::GetMessage(&msg, NULL, 0, 0))    {        switch(msg.message)        {        case WM_XXX:        {...}            break;        ......        default:            break;        }    }    return 0;}

2. 进程II

CreateProcess(...);::PostThreadMessage(nThrdId, WM_XXX, wParam, lParam);
0 0