我正在試圖製作a window that closes when you click outside it,目前我正在通過處理WndProc函數來研究這個問題。這些WndProc代碼是什麼意思?
到目前爲止,我收到的消息都不是很有用,但有一些我根本不理解。代碼0x0118,0xC123,0xC128和0xC12E代表什麼?
我正在試圖製作a window that closes when you click outside it,目前我正在通過處理WndProc函數來研究這個問題。這些WndProc代碼是什麼意思?
到目前爲止,我收到的消息都不是很有用,但有一些我根本不理解。代碼0x0118,0xC123,0xC128和0xC12E代表什麼?
0x0118:用於插入符WM_SYSTIMER(無證)閃爍
其他三個應該是應用程序定義的消息(在0xC000時到0xFFFF範圍內的任何東西),所以你不會找到任何地方的定義。
一個簡單的方法就是捕捉鼠標。當你捕捉到鼠標時,你會在窗口外面看到一個點擊事件,然後關閉捕捉。
更難的方法是設置低級別的鼠標窗口掛鉤。要執行全局鉤子,您必須將鉤子代碼放入非託管DLL中。
A 真的簡單的方法是關閉窗體,當它停用。
編輯:
哎呀。我剛剛意識到我沒有回答你關於消息ID的直接問題。消息0x118未在winuser.h中定義,因此我認爲它是未公開的消息ID。範圍從0xC000到0xFFFF的消息ID是應用程序定義的消息。這些ID由RegisterWindowMessage
返回。
嗯......尋找MouseCaptureChanged事件並檢查鼠標的位置似乎是迄今爲止所見到的最好的方式。回到我的另一個問題,我會把你的標記作爲正確的答案。 – Simon 2008-11-18 13:16:03