天天看點

鍵盤擊鍵消息

擊鍵消息

Windows通過給擁有輸入焦點的視窗發送WM_KEYDOWN和WM_KEYUP消息來報告鍵是被按下還是被釋放,這些消息被稱為擊鍵消息。當一個鍵被按下時,由輸入焦點的視窗會接收到WM_KEYDOWN消息以及一個辨別鍵的虛拟鍵代碼,當鍵被釋放時會收到WM_KEYUP消息。當一個鍵被按下時,如果另外的鍵被按下并釋放,那麼剛産生的WM_KEYDOWN和WM_KEYUP消息會把按着的鍵産生的WM_KEYDOWN和WM_KEYUP分開

除了兩個鍵以外所有的鍵都産生WM_KEYDOWN和WM_KEYUP消息,兩個例外鍵是Alt和F10,它們是系統鍵,對Windows有特殊意義。它們中任何一個鍵被按下和釋放,視窗都會接到WM_SYSKEYUP跟着WM_SYSKEYDOWN消息,如果在Alt鍵被按下時别的鍵被按下了,他們也會産生WM_SYSKEYDOWN和WM_SYSUP消息,而不是WM_KEYDOWN和WM_KEYUP消息。按下F10使Windows處于特殊模态下,它将把下一次擊鍵當作菜單選擇的快捷模式。例如:在按下了F10之後再按F鍵,在大多數程式中會拉下“檔案”菜單;(可以自己打開一個Windows txt文檔 按下F10,然後再按下F,會有下拉菜單彈出)

應用程式對感興趣的擊鍵消息提供了消息映射表輸入項以及消息處理函數來處理他們。WM_KEYDOWN,WM_KEYUP,WM_SYSKEYDOWN,WM_SYSKEYUP分别由類的OnKeyDown,OnKeyUp,OnSysKeyDown以及OnSysKeyUp成員函數處理

擊鍵消息處理函數原型如下:

afx_msg void OnMsgName(UINT nChar,UINT nRepCnt,UINT nFlags);

上一篇: 遞歸入門