簡體   English   中英

WM_KEYDOWN混亂

[英]WM_KEYDOWN confusion

當我按下CTRL + S時,我正試圖讓我的應用程序執行某些操作。 我只是不確定W和L參數如何為WM_KEYDOWN工作。 MSDN有一些我不確定的位字段。 如何檢測CTRL和S? 謝謝

如果除了hWnd之外的另一個控件有焦點,我該怎么辦?

嗯, 是虛擬鍵碼的大清單。

CTRL-S將作為2個WM_KEYDOWN消息發送 - 當按下ctrl鍵( VK_LCONTROLVK_RCONTROL )時出現消息,然后是“S”鍵的0x53

不是處理兩個消息,而是等待'S'按下的按鍵消息然后使用魔術值VK_CONTROL調用GetKeyState (另外你需要單獨測試左和右控制鍵)以查看是否按下了S按住CTRL鍵。

-

顯然,鍵盤消息直接發送到具有焦點的窗口。 要使加速器組合在應用程序范圍內工作,您需要在將消息分派到焦點窗口之前檢查消息 - 即在消息泵中。 請參閱TranslateAccelerator的文檔。

如果要處理系統范圍的按鍵,則另一個答案指向熱鍵api。

當WPARAM等於CTRL VKcode時,則在對象的狀態中設置bool。 然后,當S出現時,如果是Ctrlbool,你就有了CTRL-S。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM