Appendix A Windows Virtual-Key Codes

The following table shows the symbolic constant names, hexadecimal values, and keyboard (or mouse) equivalents for the virtual-key codes used by the Microsoft Windows operating system version 3.1. The codes are listed in numeric order. Use these codes with the AddAccelerator and RemoveAccelerator macros.

Symbolic constant name Hexadecimal value Keyboard (or mouse) equivalent

VK_LBUTTON 01 Left mouse button
VK_RBUTTON 02 Right mouse button
VK_CANCEL 03 Used for control-break processing
VK_MBUTTON 04 Middle mouse button (three-button mouse)
05 07 Undefined
VK_BACK 08 BACKSPACE key
VK_TAB 09 TAB key
0A 0Β Undefined
VK_CLEAR 0C CLEAR key
VK_RETURN 0D RETURN key
0E 0F Undefined
VK_SHIFT 10 SHIFT key
VK_CONTROL 11 CTRL key
VK_MENU 12 ALT key
VK_PAUSE 13 PAUSE key
VK_CAPITAL 14 CAPITAL key
Symbolic constant name Hexadecimal value Keyboard (or mouse) equivalent

15 19 Reserved for Kanji systems
1A Undefined
VK_ESCAPE 1B ESC key
1C 1F Reserved for Kanji systems
VK_SPACE 20 SPACEBAR
VK_PRIOR 21 PAGE UP key
VK_NEXT 22 PAGE DOWN key
VK_END 23 END key
VK_HOME 24 HOME key
VK_LEFT 25 LEFT ARROW key
VK_UP 26 UP ARROW key
VK_RIGHT 27 RIGHT ARROW key
VK_DOWN 28 DOWN ARROW key
VK_SELECT 29 SELECT key
2A OEM specific
VK_EXECUTE 2B EXECUTE key
VK_SNAPSHOT 2C PRINT SCREEN key for Windows version 3.0 or later
VK_INSERT 2D INS key
VK_DELETE 2E DEL key
VK_HELP 2F HELP key
VK_0 30 0 key
VK_1 31 1 key
VK_2 32 2 key
VK_3 33 3 key
VK_4 34 4 key
VK_5 35 5 key
VK_6 36 6 key
VK_7 37 7 key
VK_8 38 8 key
VK_9 39 9 key
3A 40 Undefined
Symbolic constant name Hexadecimal value Keyboard (or mouse) equivalent

VK_A 41 A key
VK_B 42 B key
VK_C 43 C key
VK_D 44 D key
VK_E 45 E key
VK_F 46 F key
VK_G 47 G key
VK_H 48 H key
VK_I 49 I key
VK_J 4A J key
VK_K 4B K key
VK_L 4C L key
VK_M 4D M key
VK_N 4E N key
VK_O 4F O key
VK_P 50 P key
VK_Q 51 Q key
VK_R 52 R key
VK_S 53 S key
VK_T 54 T key
VK_U 55 U key
VK_V 56 V key
VK_W 57 W key
VK_X 58 X key
VK_Y 59 Y key
VK_Z 5A Z key
5B 5F Undefined
VK_NUMPAD0 60 Numeric keypad 0 key
VK_NUMPAD1 61 Numeric keypad 1 key
VK_NUMPAD2 62 Numeric keypad 2 key
VK_NUMPAD3 63 Numeric keypad 3 key
Symbolic constant name Hexadecimal value Keyboard (or mouse) equivalent

VK_NUMPAD4 64 Numeric keypad 4 key
VK_NUMPAD5 65 Numeric keypad 5 key
VK_NUMPAD6 66 Numeric keypad 6 key
VK_NUMPAD7 67 Numeric keypad 7 key
VK_NUMPAD8 68 Numeric keypad 8 key
VK_NUMPAD9 69 Numeric keypad 9 key
VK_MULTIPLY 6A Multiply key
VK_ADD 6B Add key
VK_SEPARATOR 6C Separator key
VK_SUBTRACT 6D Subtract key
VK_DECIMAL 6E Decimal key
VK_DIVIDE 6F Divide key
VK_F1 70 F1 key
VK_F2 71 F2 key
VK_F3 72 F3 key
VK_F4 73 F4 key
VK_F5 74 F5 key
VK_F6 75 F6 key
VK_F7 76 F7 key
VK_F8 77 F8 key
VK_F9 78 F9 key
VK_F10 79 F10 key
VK_F11 7A F11 key
VK_F12 7B F12 key
VK_F13 7C F13 key
VK_F14 7D F14 key
VK_F15 7E F15 key
VK_F16 7F F16 key
VK_F17 80 F17 key
VK_F18 81 F18 key
VK_F19 82 F19 key
Symbolic constant name Hexadecimal value Keyboard (or mouse) equivalent

VK_F20 83 F20 key
VK_F21 84 F21 key
VK_F22 85 F22 key
VK_F23 86 F23 key
VK_F24 87 F24 key
88 8F Unassigned
VK_NUMLOCK 90 NUM LOCK key
VK_SCROLL 91 SCROLL LOCK key
92 B9 Unassigned
BA C0 OEM specific
C1 DA Unassigned
DB E4 OEM specific
E5 Unassigned
E6 OEM specific
E7 E8 Unassigned
E9 F5 OEM specific
F6 FE Unassigned