windows消息

键盘消息:
      当用户按下或释放键盘上的键时,Windows和键盘驱动程序将硬件扫描码转换为格式消息并保存在“系统消息队列”中。只有当Windows应用程序处理完前一个用户输入消息时,Windows才会从系统消息队列中取出下一个消息,并将其放入应用程序消息队列。
  
键盘事件消息可以分为“击键”和“字符”两类。

   对于可以显示字符的击键组合,
Windows不仅向程序发送击键消息,还发送字符消息。有些键不产生字符,这些键包括shift键、Fn功能键、光标移动键和特殊字符如InsertDelete

       击键消息包括WM_KEYDOWNWM_KEYUPWM_SYSKEYDOWNWM_SYSKEYUP四种类型。
  WM_KEYDOWNWM_KEYUP消息通常是在按下或释放不带Alt键的键时产生;
  WM_SYSKEYDOWN
WM_SYSKEYUP消息通常由与Alt组合的击键产生,这些键激活程序菜单或系统菜单上的选项,或切换活动窗口,也可以用作系统菜单加速键。
由于Windows处理所有Alt键的功能,应用程序无需捕获这些消息。

对于4类击键消息,wParam是虚拟键代码,代表按下或释放的键,而lParam包含击键的其他数据。
如果按住一个键不放使得自动重复功能生效,那么该键最后被释放时,Windows会给窗口过程发送一系列的WM_KEYDOWN(或WM_SYSKEYDWON)消息和一个WM_KEYUP(或WM_SYSKEYUP)消息。

      真实的键码是由物理键盘硬件产生。这些键码被称之为“扫描码(Scan Codes)”。虚拟键码是以与设备无关的方式处理键盘。大多数虚拟键码名称在WINUSER.H头文件中都定义为以VK_开头。具体定义列表可以参考msdn文档。

       BackspaceTabEnterEscapeSpaceBar等键操作在Windows中通常以字符消息(而非击键消息)处理。

       数字和字符的虚拟键码正好是ACSII码。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值