第5讲 Windows应用程序中的键盘与鼠标
第5讲 Windows应用程序中的键盘与鼠标
6.1键盘在应用程序中的应用 键盘上的键 TM 个唯一的标识值(扫描 按下或释放某键时一生 扫描码是依赖于具体设备的,为达到设备无关性的要求,往往使用与具体设备 无关的虚拟码,虚拟码是由 Windows系统定义的与设备无关的键的标识 设备驱动程序翻译 由于键盘的输入 截取键的扫描码 虚拟码 9>产生一条 扫描码、虚拟码以及其他与击键有关的消息 消息设备驱动程序把消息放到系统的 Windows从系统消息队 消息队列中 列中取出消息 取出键盘消息进行处理窗口过程发送到相应的线程消息队列中
扫描码是依赖于具体设备的,为达到设备无关性的要求,往往使用与具体设备 无关的虚拟码,虚拟码是由Windows系统定义的与设备无关的键的标识 由于键盘的输入 产生一条 消息 扫描码、虚拟码以及其他与击键有关的消息 设备驱动程序 截取键的扫描码 翻译 虚拟码 它含 键盘上的键 对应 一个唯一的标识值(扫描码) 按下或释放某键时 产 生 取出键盘消息进行处理 消息 设备驱动程序 把消息放到系统的 消息队列中 Windows从系统消息队 列中取出消息 发送到相应的线程消息队列中 窗口过程 6.1 键盘在应用程序中的应用
虚拟码是一种与设备无关的键盘编码,它的值存放在键盘消息的 wParam参数中,用以标识哪一个键被按下或释放,最常用的虚拟码 已经在 Windows. h中定义, 常用的虚拟码 符号常量名称 等价的键盘键或 符号常量名称 等价的键盘键或 鼠标按钮 鼠标按钮 VK LBUTTON鼠标左按钮 VK BACK 退格键 VK RBUTTON 鼠标右按钮 VK TAB 制表键 Ⅴ X MBUTTON鼠标中按钮ⅴ K RETURN 回车键 VK SHIFT Shift键 VK CONTROL Ctr键 VK MENU AIt键 VK PAUSE Pause键 VK CAPITAL Caps lock键|ⅴ K ESCAPE Esc链 VK PRIOR Page Up键 VK NEXT Page Down键 VK END End键 VK HOME Home键 VK LEFT 左键头键 VK RIGHT 右箭头键 VK UP 上箭头键 VK DOWN 下箭头键 VKO-VK 9 0~9键ⅴKA~VKZ A~Z键
虚拟码是一种与设备无关的键盘编码,它的值存放在键盘消息的 wParam参数中,用以标识哪一个键被按下或释放,最常用的虚拟码 已经在Windows.h中定义, 常用的虚拟码 符号常量名称 等价的键盘键或 鼠标按钮 符号常量名称 等价的键盘键或 鼠标按钮 VK_LBUTTON 鼠标左按钮 VK_BACK 退格键 VK_RBUTTON 鼠标右按钮 VK_TAB 制表键 VK_MBUTTON 鼠标中按钮 VK_RETURN 回车键 VK_SHIFT Shift 键 VK_CONTROL Ctrl 键 VK_MENU Alt 键 VK_PAUSE Pause 键 VK_CAPITAL Caps Lock 键 VK_ESCAPE Esc 键 VK_PRIOR Page Up 键 VK_NEXT Page Down 键 VK_END End 键 VK_HOME Home 键 VK_LEFT 左键头键 VK_RIGHT 右箭头键 VK_UP 上箭头键 VK_DOWN 下箭头键 VK_0~VK_9 0~9 键 VK_A~VK_Z A~Z 键
操作系统在接收到键盘输入后 把消息发送给具有“输入焦点( (input focus)的窗 应用程序一般有几个窗 口,但当按下某一个键 有“输入焦点” 时,只有一个窗口能接 的窗口应是活 收到该键盘消息,接收 这个键盘消息的窗口称 动窗口或者活 为有“输入焦点”的窗口 动窗口的子窗口 窗口函数通过捕获 WM SETFOCUS和 WM KILLFOCUS消息确 定当前窗口是否具有输入焦点 窗口正在接 窗口失去 收输入焦点 输入焦点
操作系统在接收到键盘输入后 把消息发送给具有“输入焦点(input focus)的窗口 应用程序一般有几个窗 口,但当按下某一个键 时,只有一个窗口能接 收到该键盘消息,接收 这个键盘消息的窗口称 为有“输入焦点”的窗口 有“输入焦点” 的窗口应是活 动窗口或者活 动窗口的子窗口 窗口正在接 收输入焦点 窗口函数通过捕获WM_SETFOCUS和WM_KILLFOCUS消息确 定当前窗口是否具有输入焦点。 窗口失去 输入焦点
一个按键的组合产生了 个可以显示的字符时, 不使用AIt键组合 就产生了一个字符消息 的的按键消息 字符消息 键盘消息 非系统按键消息 按键消息 系统按键消息 按下或松开一个键时 就产生了一按键消息 若应用程序处理了这 些系统键消息,还要调 用 DefWindowsProc(函 AIt键与相关输入键的组合 数,以便不影响系统对 产生的消息,这些键一般 它们的处理 由 Windows系统内部直接 处理,应用程序不处理
键盘消息 按键消息 字符消息 按下或松开一个键时 就产生了一按键消息 一个按键的组合产生了 一个可以显示的字符时, 就产生了一个字符消息 系统按键消息 非系统按键消息 Alt键与相关输入键的组合 产生的消息,这些键一般 由Windows系统内部直接 处理,应用程序不处理 若应用程序处理了这 些系统键消息,还要调 用DefWindowsProc()函 数,以便不影响系统对 它们的处理 不使用Alt键组合 的的按键消息