所有的键盘虚拟键码

1    VK_LBUTTON   鼠标左键
2    VK_RBUTTON   鼠标右键
3    VK_CANCEL   Ctrl+Break(通常不需要处理)
4    VK_MBUTTON   鼠标中键
8    VK_BACK    Backspace
9    VK_TAB     Tab
12   VK_CLEAR    Num Lock关闭时的数字键盘5
13   VK_RETURN   Enter(或者另一个)
16   VK_SHIFT    Shift(或者另一个)
17   VK_CONTROL   Ctrl(或者另一个)
18   VK_MENU    Alt(或者另一个)
19   VK_PAUSE    Pause
20   VK_CAPITAL   Caps Lock
27   VK_ESCAPE   Esc
32   VK_SPACE    Spacebar
33   VK_PRIOR    Page Up
34   VK_NEXT    Page Down
35   VK_END     End
36   VK_HOME    Home
37    VK_LEFT    左箭头
38   VK_UP     上箭头
39   VK_RIGHT   右箭头
40   VK_DOWN    下箭头
41   VK_SELECT   可选
42   VK_PRINT   可选
43   VK_EXECUTE  可选
44   VK_SNAPSHOT  Print Screen
45   VK_INSERT   Insert
46   VK_DELETE  Delete
47   VK_HELP   可选
48~57  无      主键盘上的0~9
65~90  无      A~Z
96~105  VK_NUMPAD0~VK_NUMPAD9   Num Lock打开时数字键盘上的0~9
106   VK_NULTIPLY         数字键盘上的*
107   VK_ADD           数字键盘上的+
108   VK_SEPARATOR        可选
109   VK_SUBTRACT         数字键盘上的-
110   VK_DECIMAL         数字键盘上的.
111   VK_DIVIDE          数字键盘上的/
112~135 VK_F1~VK_F24        功能键F1~F24
144   VK_NUMLOCK         Num Lock
145   VK_SCROLL          Scroll Lock

--------------------------------------------------------------------------------


下边三个是MS键盘上的:

--------------------------------------------------------------------------------

十进制值 标识符 Microsoft自然键盘 

--------------------------------------------------------------------------------

91 VK_LWIN 左Windows键 
92 VK_RWIN 右Windows键 
93 VK_APPS Applications键 

--------------------------------------------------------------------------------


两种键盘消息:
非系统键 WM_KEYDOWN WM_KEYUP 
系统键 WM_SYSKEYDOWN WM_SYSKEYUP 


 在键盘消息中,虚拟键码都保存在wParam参数中。这些虚拟键码的定义,是在winuser.h文件中,所以当用到键盘的虚拟键码时,要包含这个文件,不过,如果已经包含了windows.h文件,那么就不需要再包含winuser.h文件了,因为windows.h文件已经包含了winuser.h文件。
 Print Screen键一般不需要处理。
 VK_SELECT、VK_PRINT、VK_EXECUTE和VK_HELP很少出现。
 数字和字母的虚拟键码是ASCII码。
 F1~F24的功能键中,windows只用到了F1~F10。
 用GetKeyState(int):(参数是以VK_开头的虚拟键码)获得所有有开关性质的键的状态(是否按下),比如shift、Alt等。用GetAsyncKeySate();获得当前某键的状态。
 WM_SYSKEYDOWN和WM_SYSKEYUP消息由Windows系统函数使用,所以用户可以不管她。
 WM_CHAR和WM_DEADCHAR消息是从WM_KEYDOWN得到的,而WM_SYSCHAR和WM_SYSDEADCHAR消息是从WM_SYSKEYDOWN消息得到的。在某些非U.S.英语键盘上,有些键用于给字母加上音调,因为它们本身不产生字符,所以称之为“死键”。
 RegisterClass有两个版本,分别是ANSI版本的RegisterClassA和Uncode版本的RegisterClassW。如果程序用RegisterClass注册窗口类,那么当定义UNICODE标识符时就调用RegisterClassW,否则就调用RegisterClassA。同一窗口过程可能会用到两个窗口类,她们有可能用两种不同的版本注册。用下列函数可以获得窗口注册的类型:
fUnicode=IsWindowUnicode(hwnd);
如果hwnd的窗口过程获得Unicode消息,那么变量fUnicode将为TRUE,,这表明窗口是基于用RegisterClassW注册的窗口类。
原文地址:https://www.cnblogs.com/ganmk/p/1404094.html