windows消息

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

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

       击键消息包括 WM_KEYDOWN WM_KEYUP WM_SYSKEYDOWN WM_SYSKEYUP 四种类型。
  WM_KEYDOWN WM_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码。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值