WM_CHAR和WM_KEYDOWM的区别
ASCII码不是仅包含字符,还包含很多控制符键盘上大部分的按键都是与ASCII相对应的,包括空格回车ESC等(ESC按键对应ASCII十进制为27)
WM_CHAR消息只响应字符按键和部分控制符,有很多控制字符不响应不响应的键如下:
Tab键、CapsLock大小写切换键、ESC键、F1~F12、SHIFT、CTRL、ALT、方向键、方向键上方键盘区、NumLock键
WM_KEYDOWN响应所有按键消息
(Alt键、PrintScreenSysRq截屏键不响应)
WM_CHAR区分大小写和SHIFT+数字,而WM_KEYDOWN只返回大写字母没有SHIFT作用例如:
按下F键不管处于大写或小写状态WM_KEYDOWN都返回70(ASCII对应大写F)而WM_CHAR区分大小写
SHITF+1WM_CHAR中的wParam是33(ASCII对应!)WM_KEYDOWN中的是49(ASCII对应1)
MSDN文档原文内容:
WM_CHAR是键盘所按下的那个字符的响应可以用来判断是哪个字符的响应(如按下A实现什么功能按下B实现什么功能)
WM_KEYDOWN是键盘按下后的消息响应(只要按下键盘都响应)
评论前必须登录!
注册