zoukankan      html  css  js  c++  java
  • PostMessage和PostThreadMessage的区别

    PostThreadMessage

    将一个消息放入(寄送)到指定线程消息队列里,不等待线程处理消息就返回。既可以发送消息给工作线程,也可以发送给UI线程其原型如下:

    BOOL PostThreadMessage(          
      DWORD idThread,
      UINT Msg,   
      WPARAM wParam,    
      LPARAM lParam
    );
    idThread:
    其消息将被寄送的线程的线程标识符。如果线程没有消息队列,此函数将失败。
    当线程第一次调用一个Win 32 USER或GDI函数时,系统创建线程的消息队列。要得到更多的信息,参见备注。
     
    Msg:指定将被寄送的消息的类型。
     
    wParam:指定附加的消息特定信息。
     
    IParam:指定附加的消息特定信息。
     
    返回值:
    如果函数调用成功,返回非零值。
    如果函数调用失败,返回值是零。
     
    若想获得更多的错误信息,请调用GetLastError函数。
    如果idThread不是一个有效的线程标识符或由idThread确定的线程没有消息队列,
    GetLastError返回ERROR_INVALID_THREAD_ID。
     
    备注:消息将寄送到的线程必须创建消息队列,否则调用PostThreadMessage会失败。
    用下列方法之一来处理这种情况:

    1) 调用PostThreadMessage。如果失败,调用Sleep,
    再调用PostThreadMessage,反复执行,直到PostThreadMessage成功。
     
    2) 创建一个事件对象,再创建线程。在调用PostThreadMessage之前,
    用函数WaitForSingleObject来等待事件被设置为被告知状态。
    消息将寄送到的线程调用PeekMessage(&msg,NULL,WM_USER,WM_USER,PM_NOREMOVE)
    来强制系统创建消息队列。设置事件,表示线程已准备好接收寄送的消息。

    消息将寄送到的线程通过调用GetMesssge或PeekMesssge来取得消息。
    返回的MSG结构中的hwnd成员为NULL。
     

    PostMessage

    将一个消息放入(寄送)到与指定窗口创建的线程相联系消息队列里,不等待线程处理消息就返回,是异步消息模式。
    消息队列里的消息通过调用GetMessage和PeekMessage取得。其原型如下:
     
    BOOL PostMessage(          
      HWND hWnd,
      UINT Msg,   
      WPARAM wParam,    
      LPARAM lParam
    );
    hWnd
    其窗口程序接收消息的窗口的句柄。可取有特定含义的两个值:
      HWND_BROADCAST:消息被寄送到系统的所有顶层窗口,包括无效或不可见的非自身拥有的窗口、  
      被覆盖的窗口和弹出式窗口。消息不被寄送到子窗口
      NULL:此函数的操作和调用参数dwThread设置为当前线程的标识符PostThreadMessage函数一样
     
    Msg:指定被寄送的消息。
     
    wParam:指定附加的消息特定的信息。
     
    IParam:指定附加的消息特定的信息。
     
    返回值
    如果函数调用成功,返回非零值:
    如果函数调用失败,返回值是零。
    若想获得更多的错误信息,请调用GetLastError函数。
     

  • 相关阅读:
    Win7 配置Android开发环境 狼人:
    Windows Phone 7 Tips (3) 狼人:
    Windows Phone 7 Tips (1) 狼人:
    探索移动Web网页编码设计 狼人:
    初探AIR for Android开发 狼人:
    Android设计趋势分析10则 狼人:
    Android与服务器端数据交互 狼人:
    Android UI基本测验:线性布局 狼人:
    Android用户界面设计:线性布局 狼人:
    Eclipse开发Android应用程序入门:重装上阵 狼人:
  • 原文地址:https://www.cnblogs.com/shangdawei/p/3020885.html
Copyright © 2011-2022 走看看