PostMessage功能将消息放置在与创建指定窗口的线程相关联的消息队列中,然后返回,而不等待线程处理消息。通过调用GetMessage或PeekMessage功能检索消息队列中的消息。
BOOL PostMessage(
HWND 【的hWnd】, | //目标窗口的句柄 |
UINT 【消息】, | //要发帖 |
WPARAM 【wParam中】, | //第一个消息参数 |
LPARAM 【lParam的】 | //第二个消息参数 |
); |
参数
【的hWnd】
标识窗口程序接收消息的窗口。两个值有特殊含义:
值 | 含义 |
HWND_BROADCAST | 该消息被发布到系统中的所有顶级窗口,包括禁用或不可见的未知窗口,重叠窗口和弹出窗口。消息未发布到子窗口。 |
NULL | 该函数的行为就像调用PostThreadMessage,【dwThreadId】参数设置为当前线程的标识符。 |
【消息】
指定要发布的消息。
【wParam中】
指定附加的消息特定信息。
【lParam的】
指定附加的消息特定信息。
返回值
如果函数成功,返回值不为零。
如果函数失败,返回值为零。要获取扩展错误信息,请调用GetLastError.
备注
需要使用HWND_BROADCAST进行通信的应用程序应使用RegisterWindowMessage函数获取应用程序间通信的唯一消息。
如果您发送WM_USER范围内的消息到异步消息功能(PostMessage,SendNotifyMessage和SendMessageCallback),请确保消息参数不包含指针。否则,在接收线程有机会处理消息之前,函数将返回,并且发送者将在使用之前释放内存。
也可以看看
GetMessage, PeekMessage, SendMessageCallback, SendNotifyMessage