第七章 鼠標

    1、對於客戶區的鼠標消息,其lParam值均含有鼠標的位置:低位字爲x座標,高位字爲y座標,這兩個座標是相對於窗口客戶區左上角的位置。可以用LOWORD和HIWORD來提取這些值:

wParam的值指示鼠標鍵及Shift鍵和Ctrl鍵的狀態。

    2、窗口過程可以“捕獲鼠標”並且連續地接收鼠標消息,即使此時鼠標在該窗口客戶區之外。

    3、如果正在顯示一個模態系統消息框或者模態系統對話框,那麼其他程序就不能接收鼠標消息。當模態系統消息或者對話框處於活動態時,禁止切換到其他窗口或者程序。當關閉Windows會話時,將會顯示一個模態系統消息框的例子。

    4、GetKeyState的使用:GetKeyState返回當前正在處理的鼠標鍵或者shift鍵的狀態,所以全部狀態信息都與相應的消息是同步的。但是,正如不能把GetKeyState用於尚未按下的鍵一樣,也不能爲尚未按下的鍵調用GetKeyState。不要這樣做:

只有在調用GetKeyState期間處理消息是,如果左鍵已經按下,纔會報告鍵已按下的消息。

    5、非客戶區鼠標消息的wParam和lParam參數與客戶區鼠標消息的wParam和lParam參數有一定差別。wParam指明移動或者單擊鼠標鍵的非客戶區位置。lParam包含低位字x座標和高位字y座標,但是,它們都是屏幕座標,而非客戶區座標。屏幕座標和客戶區座標轉換的函數:

    6、WM_NCHITTEST,非客戶區命中測試消息,它優先於所有其他的客戶區和非客戶區鼠標消息。通過下列語句可以有效地禁止窗口中的而所有客戶區和非客戶區鼠標消息。

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