今天在操作键盘的英文字母任意值,WM_KEYDOWN 事件打印出来的键盘编码值总是 229,WM_KEYUP 事件打印出来的键盘编码值才是真正的编码值,比如 a, WM_KEYDOWN 显示 229,WM_KEYUP 显示 65,如下图所示:

经过查询,原来是因为在中文输入法下,使用 keydown 事件时,绝大部分的键盘 ASCII 码值都是 229,是因为输入法自动加了一个值。
我将中文输入法关闭后,切回到英文模式下,再次按下 a 键,WM_KEYDOWN 显示 65,WM_KEYUP 也显示 65,如下图所示:

因此, 在不考虑输入法的影响因素的前提下,应该使用 keyup 事件,键盘的编码值才能正常获得。
评论区