關於PeekMessage中hwnd引數

2022-09-12 18:09:06 字數 940 閱讀 8145

今天寫乙個遊戲demo的時候,在peekmessage中的hwnd引數用了hwnd而沒有設為null,然後程式就中斷了。打斷點除錯之後發現,程式在wm_destroy中postquitmessage之後,在訊息迴圈中並沒有發現wm_quit訊息,反而設為null的時候,訊息迴圈發現了wm_quit訊息。我感到很奇怪,於是查了msdn,msdn原文解釋如下:

翻譯如下:

(這個引數是)乙個指向視窗的控制代碼,這個視窗的訊息將被獲取。這個視窗必須屬於當前執行緒。

如果hwnd為null,peekmessage會獲取任何屬於當前執行緒的視窗,和任何在當前執行緒訊息佇列中的且msg結構體中的hwnd引數為null的訊息。因此如果hwnd為null,視窗訊息和執行緒訊息都會被處理。

如果hwnd為-1,peekmessage只獲取當前執行緒中(msg結構體中)hwnd值為null的訊息,即,被postmessage(當hwnd為null時)或postthreadmessage丟擲的訊息。(渣渣英語,如有大佬,還請輕噴)

然後我又在postquitmessage上找到了解釋如下:

翻譯如下:

(這個函式)指示系統乙個執行緒已經做了乙個結束(退出)請求。它往往被用在回應wm_destroy訊息上。

這兩段說明:postquitmessage結束的是執行緒,而不是視窗,所以當peekmessage的hwnd引數設定為hwnd時,函式接收不到wm_quit訊息。

HTML 關於h5中的textarea標籤

textarea定義乙個多行文字框。屬性列表 name 指定多行文字框的名稱。此項必不可少。rows 用於指定文字框的可顯示的行數,例rows 5,表示可顯示5行。超過5行,則需要拖動滾動條來瀏覽。文字框的高度就是通過這個來設定的。cols 用於指定一行中可容納下的位元組數,例如cols 40,表示...

作業中關於H5中動畫的實現 animation

h5 動畫名 animation name page1 scale 動畫時間 為2s animation duration 2s 動畫次數 數字代表的就是次數 infinite無限迴圈 animation iteration count infinite 動畫效果 animation timing ...

關於 h和 cpp檔案

h和.cpp檔案主要實現了對 的分離操作,將 區分開來寫,便於更加方便清楚得去閱讀程式,更加容易理解程式。1.宣告寫在.h檔案中,定義實現寫在.cpp檔案中 在c 中,需要在.h標頭檔案中宣告各個變數及方法 然後在.cpp執行檔案中才能方便的使用。資料成員的申明與定義都是放在.h檔案的類定義內部。對...