天天看点

键盘击键消息

击键消息

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);

上一篇: 递归入门