PostMessage是Windows API(应用程序接口) 中的一个常用函数,用于将一条消息放入到消息队列中。
函数功能
函数原型
1
|
BOOL
WINAPI PostMessage(
HWND
hWnd,
UINT
Msg,
WPARAM
wParam,
LPARAM
lParam);
|
参数说明
hWnd:其窗口程序接收消息的窗口的句柄。可取有特定含义的两个值:
HWND_BROADCAST:消息被寄送到系统的所有顶层窗口,包括无效或不可见的非自身拥有的窗口、 被覆盖的窗口和弹出式窗口。消息不被寄送到子窗口
NULL:此函数的操作和调用参数dwThread设置为当前线程的
标识符PostThreadMessage函数一样
Msg:指定被寄送的消息。
wParam:指定附加的消息特定的信息。
IParam:指定附加的消息特定的信息。
使用信息
Windows NT: 3.1及以上版本;Windows:95及以上版本;Windows CE:1.0及以上版本;头文件:winuser.h;输入库:
user32.lib;Unicode:在Windows NT环境下以Unicode和ANSI方式实现。
C语言调用范例
下面的示例演示如何使用 PostMessage 函数向专用窗口发布消息。
假设您定义了名为 WM_COMPLETE 的专用窗口消息:
1
2
3
4
5
|
#define WM_COMPLETE (WM_USER + 0)
//您可以可以使用如下的代码发布消息到创建了指定的窗口的线程的消息队列中
WaitForSingleObject(pparams->hEvent, INFINITE);
lTime = GetCurrentTime();
PostMessage(pparams->hwnd, WM_COMPLETE, 1, lTime);
|