### 函数功能

该函数将一个消息放入（寄送）到指定线程的消息队列里，不等待线程处理消息就返回。

### 函数原型

BOOL PostThreadMessage（DWORD idThread，UINT Msg，WPARAM wParam，LPARAM IParam）；
参数
idThread：其消息将被寄送的线程的线程标识符。如果线程没有消息队列，此函数将失败。当线程第一次调用一个Win 32 USER或GDI函数时，系统创建线程的消息队列。要得到更多的信息，参见备注。
Msg：指定将被寄送的消息的类型。
wParam：指定附加的消息特定信息。
IParam：指定附加的消息特定信息。

### 返回值

如果函数调用成功，返回非零值。如果函数调用失败，返回值是零。若想获得更多的错误信息，请调用GetLastError函数。如果idThread不是一个有效的线程标识符或由idThread确定的线程没有消息队
列，GetLastError返回ERROR_INVALID_THREAD。
备注：消息将寄送到的线程必须创建消息队列，否则调用PostThreadMessage会失败。用下列方法之一来处理这种情况：
调用PostThreadMessage。如果失败，调用Sleep，再调用PostThreadMessage，反复执行，直到PostThreadMessage成功。
创建一个事件对象，再创建线程。在调用PostThreadMessage之前，用函数WaitForSingleObject来等特事件被设置为被告知状态。消息将寄送到的线程调用PeedMessage（￡msg，NULL，WM_USER，WM_USER，PM_NOREMOVE）来强制系统创建消息队列。设置事件，表示线程已准备好接收寄送的消息。
消息将寄送到的线程通过调用GetMesssge或PeekMesssge来取得消息。返回的MSG结构中的hwnd成员为NULL。

### 速查

Windows NT：3.1及以上版本；Windows：95及以上版本；Windows CE：1.0及以上版本：头文件：winuser.h；输入库：user32.lib；Unicode：在Windows NT环境下以Unicode和ANSI方式实现。