PostThreadMessage

参考:http://hi.baidu.com/yuanwenxue/blog/item/bf9c6f63727da3680c33fa93.html

该函数是将一个消息放入(寄送)到指定的线程的消息队列中,不等待线程处理消息就返回。

函数的完整原型是BOOL PostThreadMessage(DWORD idThread,UINT Msg,WPARAM wParam,LPARAM lParam);

参数说明:

IdThread:其消息江被寄送的线程的线程标识符。如果线程没有消息队列,该函数调用会失败,当线程第一次调用一个Win32 USER或者GDI函数时,系统创建线程的消息队列。

Msg:指定将被寄送的消息类型。

wParam:指定附加的消息特定信息。

lParam:指定附加的消息特定信息。

返回值:如果函数调用成功,返回值为非零,如果函数调用失败,返回值是零。

注意:消息将寄送到的线程必须创建消息队列,否则调用该函数惠失败,可以用以下的方法来处理:

创建一个事件对象,在创建线程:在调用PostThreadMessage之前,用函数WaitForSingleObject来等待事件被设置为告知状态,消息将寄送到的线程调用PeekMessage来强制西永创建消息队列,设置事件,表示线程已经准备好接受寄送的消息。消息将寄送到的线程通过调用GetMesssge或PeekMesssge来取得消息。

原文地址:https://www.cnblogs.com/VARForrest/p/11364045.html