1625-5 王子昂 总结《2018年1月8日》 【连续第465天总结】
A. Windows消息系统-键盘消息
B.
键盘消息
概述
应用程序从系统接收到的关于键盘的消息可以分为两类:击键和字符。
物理层面上,对于某个按键(例如A),会发出“按下”和“弹起”两种消息,即击键消息
逻辑层面上,对于某个按键(例如A),按下以后会发出字符消息’A’
对于可以产生显示字符的击键,Windows不仅给程序发送击键消息,而且会发送字符消息
而对于不产生字符消息的击键,例如Shift、Alt等组合键、Esc、F1等功能键,都只会产生击键消息
击键消息
当按下某个按键时,Windows把WM_KEYDOWN或WM_SYSKEYDOW消息放入有输入焦点的窗口的消息队列中
当弹起某个按键时,Windows同样把WM_KEYUP或WM_SYSKEYUP消息放入队列中
有时会出现按住某个键不放的情况,此时Windows会把一系列的WM_KEYDOWN或WM_SYSKEYDOW放入队列中,直到释放把KEYUP放入队列
WM_SYSKEYDOW和WM_SYSKEYUP用于系统击键
系统击键
系统击键表示该击键对于Windows系统比对于应用程序更重要,例如Alt+F、Alt+TAB等
几乎所有会影响用户程序的消息都会先通过用户窗口过程函数
如果用户不处理且该消息为系统击键消息,则进入DefWindowProc默认窗口过程函数处理
如果是非系统击键消息则被忽略
如果用户自己的应用程序要处理系统击键消息