键盘消息WM_KEYDOWN/WM_KEYUP、WM_SYSKEYDOWN/WM_SYSKEYUP与字符消息WM_CHAR的区别

一、 WM_*KEY*与WM_CHAR区别

 

1.WM_*KEY* 消息(WM_KEYDOWN/WM_KEYUP、WM_SYSKEYDOWN/WM_SYSKEYUP)是描述键盘虚拟键码的,它对应的是键盘物理按键。

2.WM_CHAR 则是描述字符码的,它对应的键盘操作所按下的字符。

 

这二者之间的映射关系在不同物理键盘设备下并不固定,所以Windows封装了TranslateMessage这个API来完成物理键到字符的转换。

 

WM_CHAR消息只响应字符和部分字符相关的控制符(如空格、回车),

其它控制键码则不响应,如: Tab、Caps Lock、ESC、F1~F12、SHIFT、CTRL、ALT、方向键、方向键上方键盘区和Num Lock键等。

 

二、WM_SYSKEY*与WM_KEY*区别

 

WM_SYSKEY*消息由两种情况产生:

1.F10键激活程序窗口菜单;

2.由与Alt相组合的按键产生,这些按键启动程序菜单或者系统菜单上的选项,或者用于切换活动窗口等系统功能(Alt-Tab或者Alt-Esc),也可以用作加速键(Alt键与一个功能键相结合,例如Alt-F4用于关闭应用程序)。

 

程序通常忽略WM_SYSKEY*消息,并将它们传送到DefWindowProc。由于Windows要处理所有Alt键的功能,所以无需拦截这些消息。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值