?PostMessage
          ?
          函數功能描述:將一個消息放到與指定窗口創建的線程相關的消息隊列中,不等線程處理消息就返回。消息隊列里的消息通過調用GetMessage或PeekMessage函數而獲得。
          ?
          .函數原型:
          ??? BOOL PostMessage(
          ????? HWND hWnd,????? // 目標窗口句柄
          ????? UINT Msg,?????? // 被張貼的消息
          ????? WPARAM wParam,? // 第一個消息參數
          ????? LPARAM lParam?? // 第二個消息參數
          ??? );
          ?
          .參數:
          ??? hWnd
          ??????? 窗口過程接收消息的窗口句柄。可取有特定含義的兩個值:
          ??????? 取值????????????????? 含義
          ??????? HWND_BROADCAST??????? 消息被送到系統的所有頂層窗口,包括無效或不可見的非自身擁有的窗口、被覆蓋的窗口和彈出式窗口。
          ????????????????????????????? 消息不被送到子窗口。
          ??????? NULL????????????????? 函數的行為和將參數dwThreadId設置為當前線程的標識符的PostThreadMessage函數一樣。
          ?
          ??? Msg
          ??????? 指定被發送的消息;
          ??? wParam
          ??????? 指定附加消息的特定信息;
          ??? lParam
          ??????? 指定附加消息的特定信息。
          ?

          .返回值:
          ??? 如果調用函數成功,返回非零值。
          ??? 如果調用函數失敗,返回值是零。獲得更多的錯誤信息,請調用GetLastError函數。
          ?

          .備注:
          ??? 需要以 HWND_BROADCAST 方式通信的應用程序應該使用 RegisterWindowMessage 函數來獲得應用程序間通信的獨特消息。
          ??? 如果發送一個低于WM_USER范圍的消息給異步消息函數(PostMessage.SendNotifyMessage或SendMesssgeCallback),消息參數不能包含指針,否則,操作將失敗。函數將在接收線程處理消息之前返回,發送者將在內存被使用之前釋放它。
          ?

          ?PostMessage和SendMessage有什么區別?
          ?
          ?在控制別的應用程序的時候,經常需要等待直到某個功能結束,例如:
          ?打開一個窗口-->等待直到窗口結束
          ?這個時候就可以用到SendMessage
          ?如果在打開這個窗口后仍然需要對該窗口的界面進行設置,比如Edit的value等等,比如:
          ?打開一個窗口-->控制窗口的control的屬性
          ?這個時候就需要PostMessage
          ?
          ?使用一個鉤子程序截獲消息后,使用SendMessage把消息發送到主處理程序進行處理,但是在主處理程序還沒有完成任務的時候,被設置鉤子的程序進入了停止的狀態,不可以處理
          ?WM_PAINT,
          ?WM_MOVE,
          ?.......等的基本信息,
          ?必須要等SendMessage發送出的消息完成后,才能繼續運行,整個界面一片空白,把鉤子消息設置成PostMessage的發送消息形式后,問題解決!
          ?我查了MSDN對這兩個API的定義,
          ?PostMessage只是把消息放入隊列,不管其他程序是否處理都返回,然后繼續執行;
          ?而SendMessage必須等待其他程序處理消息后才返回,繼續執行。
          ?PostMessage的返回值表示PostMessage函數執行是否正確;
          ?而SendMessage的返回值表示其他程序處理消息后的返回值。
          ?使用這兩個發送消息函數的最重要的是要看你的程序
          posted on 2009-04-15 12:57 -274°C 閱讀(954) 評論(0)  編輯  收藏 所屬分類: C++

          常用鏈接

          留言簿(21)

          隨筆分類(265)

          隨筆檔案(242)

          相冊

          JAVA網站

          關注的Blog

          搜索

          •  

          積分與排名

          • 積分 - 914107
          • 排名 - 40

          最新評論

          主站蜘蛛池模板: 颍上县| 阿拉善左旗| 西乌珠穆沁旗| 加查县| 平顶山市| 开化县| 四会市| 定襄县| 建瓯市| 浦县| 深圳市| 渝中区| 乐业县| 彝良县| 武隆县| 仁怀市| 独山县| 丹巴县| 永寿县| 汝城县| 会昌县| 高碑店市| 鄂托克旗| 祁连县| 南木林县| 孟津县| 玛纳斯县| 弥渡县| 东宁县| 定结县| 永安市| 威信县| 乌拉特后旗| 八宿县| 浮山县| 龙岩市| 茌平县| 夹江县| 湟中县| 台湾省| 黄大仙区|