各位赐教WM_CHAR和WM_KEYDOWN的区别解决思路
各位赐教WM_CHAR和WM_KEYDOWN的区别
别粘贴MSDN,用最简单的语言说说
------解决方案--------------------
看字面就知道意思
char是字符消息,keydown是按键消息
------解决方案--------------------
WM_CHAR消息只响应字符按键和部分控制符
(有很多控制字符不响应 不响应的键如下:
Tab键///Caps Lock大小写切换键//ESC键///F1~F12///SHIFT///CTRL///ALT///方向键///方向键上方键盘区///Num Lock键)
WM_KEYDOWN响兴所有按键消息(Alt键///Print Screen SysRq截屏键不响兴)
WM_CHAR区分大小写和SHIFT+数字,而WM_KEYDOWN只返回大写字母没有SHIFT作用
例如:
按下F键 不管处于大写或小写状态 WM_KEYDOWN都返回70 (ASCII对应大写F) 而WM_CHAR区分大小写
SHITF+1 WM_CHAR中的wParam是33 (ASCII对应!) WM_KEYDOWN中的是49 (ASCII对应1)
------解决方案--------------------
WM_CHAR消息只响应字符按键和部分控制符
(有很多控制字符不响应 不响应的键如下:
Tab键///Caps Lock大小写切换键//ESC键///F1~F12///SHIFT///CTRL///ALT///方向键///方向键上方键盘区///Num Lock键)
WM_KEYDOWN响兴所有按键消息(Alt键///Print Screen SysRq截屏键不响兴)
WM_CHAR区分大小写和SHIFT+数字,而WM_KEYDOWN只返回大写字母没有SHIFT作用
例如:
按下F键 不管处于大写或小写状态 WM_KEYDOWN都返回70 (ASCII对应大写F) 而WM_CHAR区分大小写
SHITF+1 WM_CHAR中的wParam是33 (ASCII对应!) WM_KEYDOWN中的是49 (ASCII对应1)
------解决方案--------------------
------解决方案--------------------
其实WM_KEYDOWN比WM_CHAR高级。
比如WM_KEYDOWN可以对字符处理后发送WM_CHAR消息,反之不行。
------解决方案--------------------
WM_CHAR消息只响应字符按键和部分控制符
WM_KEYDOWN响兴所有按键消息
别粘贴MSDN,用最简单的语言说说
------解决方案--------------------
看字面就知道意思
char是字符消息,keydown是按键消息
------解决方案--------------------
WM_CHAR消息只响应字符按键和部分控制符
(有很多控制字符不响应 不响应的键如下:
Tab键///Caps Lock大小写切换键//ESC键///F1~F12///SHIFT///CTRL///ALT///方向键///方向键上方键盘区///Num Lock键)
WM_KEYDOWN响兴所有按键消息(Alt键///Print Screen SysRq截屏键不响兴)
WM_CHAR区分大小写和SHIFT+数字,而WM_KEYDOWN只返回大写字母没有SHIFT作用
例如:
按下F键 不管处于大写或小写状态 WM_KEYDOWN都返回70 (ASCII对应大写F) 而WM_CHAR区分大小写
SHITF+1 WM_CHAR中的wParam是33 (ASCII对应!) WM_KEYDOWN中的是49 (ASCII对应1)
------解决方案--------------------
WM_CHAR消息只响应字符按键和部分控制符
(有很多控制字符不响应 不响应的键如下:
Tab键///Caps Lock大小写切换键//ESC键///F1~F12///SHIFT///CTRL///ALT///方向键///方向键上方键盘区///Num Lock键)
WM_KEYDOWN响兴所有按键消息(Alt键///Print Screen SysRq截屏键不响兴)
WM_CHAR区分大小写和SHIFT+数字,而WM_KEYDOWN只返回大写字母没有SHIFT作用
例如:
按下F键 不管处于大写或小写状态 WM_KEYDOWN都返回70 (ASCII对应大写F) 而WM_CHAR区分大小写
SHITF+1 WM_CHAR中的wParam是33 (ASCII对应!) WM_KEYDOWN中的是49 (ASCII对应1)
------解决方案--------------------
------解决方案--------------------
其实WM_KEYDOWN比WM_CHAR高级。
比如WM_KEYDOWN可以对字符处理后发送WM_CHAR消息,反之不行。
------解决方案--------------------
WM_CHAR消息只响应字符按键和部分控制符
WM_KEYDOWN响兴所有按键消息