GetMessage

GetMessage(&msg, nullptr, 0, 0)

我們轉到定義,

BOOL WINAPI GetMessage(

  _Out_     LPMSG lpMsg,//指向Msg的指針,用於存放獲取到的消息
  _In_opt_  HWND hWnd,//需要獲取消息的窗口的句柄,該窗口必須屬於當前線程
  _In_      UINT wMsgFilterMin,//指定被可以被獲取的消息值的最小整數(消息其實就是一個被定義的整數)

_In_      UINT wMsgFilterMax);//指定被可以被獲取的消息值的最大整數


hWnd當其值是 NULL 時,將獲取所有的當前線程的窗口消息和線程消息;當其值是 -1 時,只獲取當前線程消息

wMsgFilterMin wMsgFilterMax 參數限定消息獲取的範圍,如果二者都爲 0,則消息獲取的範圍爲所有消息;

返回值BOOL

1. 如果函數取得 WM_QUIT 之外的其他消息,返回值是非 0;

2. 如果函數取得 WM_QUIT 消息,返回值是 0;

3. 如果出現了錯誤,返回值是 -1。

以下轉載:調用此函數的過程中,如果接收到非排隊消息 —— 也就是由該線程調用 SendMessageSendMessageCallbackSendMessageTimeout, 或 SendNotifyMessage 發送給所屬窗口的消息 —— 系統先暫時掛起等待,然後再獲取過濾器匹配的第一個隊列消息。如果不指定過濾器,那麼按照以下順序獲取消息:

  • Sent messages
  • Posted messages
  • Input (hardware) messages and system internal events
  • Sent messages (again)
  • WM_PAINT messages
  • WM_TIMER messages

發佈了28 篇原創文章 · 獲贊 10 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章