PostMessage

PostMessage

PostMessage是Windows API(應用程式接口) 中的一個常用函式,用於將一條訊息放入到訊息佇列中。訊息佇列里的訊息通過調用GetMessage和PeekMessage取得。

基本介紹

  • 中文名:PostMessage
  • Windows NT:3.1
  • Windows:95
  • Windows ET:1.0及以上版本
  • Windows CE:1.0及以上版本
函式功能,函式原型,參數說明,使用信息,調用範例,HTML5方法,

函式功能

該函式將一個訊息放入(寄送)到與指定視窗創建的執行緒相聯繫訊息佇列里,不等待執行緒處理訊息就返回,是異步訊息模式。訊息佇列里的訊息通過調用GetMessage和PeekMessage取得。

函式原型

BOOL WINAPI PostMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam);

參數說明

hWnd:其視窗程式接收訊息的視窗的句柄。可取有特定含義的兩個值:
HWND_BROADCAST:訊息被寄送到系統的所有頂層視窗,包括無效或不可見的非自身擁有的視窗、 被覆蓋的視窗和彈出式視窗。訊息不被寄送到子視窗
NULL:此函式的操作和調用參數dwThread設定為當前執行緒的標識符PostThreadMessage函式一樣
Msg:指定被寄送的訊息。
wParam:指定附加的訊息特定的信息。
LParam:指定附加的訊息特定的信息。
返回值:如果函式調用成功,返回非零,否則函式調用返回值為零

使用信息

Windows NT: 3.1及以上版本;Windows:95及以上版本;Windows CE:1.0及以上版本;
頭檔案:winuser.h;
輸入庫user32.lib
Unicode:在Windows NT環境下以Unicode和ANSI方式實現。

調用範例

下面的示例演示如何使用 PostMessage 函式向專用視窗發布訊息。
假設您定義了名為 WM_COMPLETE 的專用視窗訊息:
#defineWM_COMPLETE(WM_USER+0)//您可以使用如下的代碼發布訊息到創建了指定的視窗的執行緒的訊息佇列中WaitForSingleObject(pparams->hEvent,INFINITE);lTime=GetCurrentTime();PostMessage(pparams->hwnd,WM_COMPLETE,1,lTime);

HTML5方法

在HTML5中新增了postMessage方法,postMessage可以實現跨文檔訊息傳輸(Cross Document Messaging),Internet Explorer 8, Firefox 3, Opera 9, Chrome 3和 Safari 4都支持postMessage。
該方法可以通過綁定window的message事件來監聽傳送跨文檔訊息傳輸內容。

相關詞條

熱門詞條

聯絡我們