PeekMessage 和 GetMessage

PeekMessage和GetMessage

GetMessage(LPMSG lpMsg,  HWND hWnd,   UINT wMsgFilterMin,   UINT wMsgFilterMax)

PeekMessage(LPMSG lpMsg,  HWND hWnd,   UINT wMsgFilterMin,   UINT wMsgFilterMax,UINT wRemoveMsg)

 參數wRemoveMsg的作用是指定消息獲取的方式,如果設爲PM_NOREMOVE,那麼消息將不會從消息隊列中被移出,如果設爲PM_REMOVE,那麼消息將會從消息隊列中被移出;

    兩個函數主要有以下兩個區別:
    1.GetMessage將等到有合適的消息時才返回,而PeekMessage只是撇一下消息隊列。
    2.GetMessage會將消息從隊列中刪除,而PeekMessage可以設置最後一個參數wRemoveMsg來決定是否將消息保留在隊列中。

      Windows的內部,GetMessagePeekMessage執行着相同的代碼。而兩者最大的不同之處則體現在沒有任何消息返回到應用程序的情況下。在此種情況下,PeekMessage會返回一個空值到應用程序,GetMessage會在此時讓應用程序休眠。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章