您的位置:首页 > 编程语言

PostThreadMessage的用法

2015-05-16 22:06 288 查看

同一进程不同线程之间

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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息