KeyCodes
Jump to navigation
Jump to search
A few words on keycodes
When you want to handle the KeyDown event, you get passed a wxKeyEvent event as a parameter. event.GetKeyCode() will then return you the KeyCode of the pressed key. This page aims to upgrade the documentation for wxWidgets 2.4.2. The documentation in 2.6.3 is more complete.
A few oddities
The way it works seems a little strange sometimes (at least on Windows XP). For example :
- right control and left control cannot be differentiated,
- the keycode of non special keys is an ascii code, which means it will depend on the keyboard layout you are using,
- "print screen" will not generate an event on my system,
- the right alt key will send me two events instead of only one ( WXK_CONTROL and WXK_ALT ).
The french keyboard layout
As I am using a french layout, here are the values I get. Keep in mind it will be different from a US keyboard layout (or any other layout). I have listed the keys from left to right and from up to down :
- NK_ESC 27
- NK_F1 342
- NK_F2 343
- NK_F3 344
- NK_F4 345
- NK_F5 346
- NK_F6 347
- NK_F7 348
- NK_F8 349
- NK_F9 350
- NK_F10 351
- NK_F11 352
- NK_F12 353
- NK_SYSREQ
- NK_SCRLOCK 367
- NK_PAUSE 310
- NK_GRAVE 39
- NK_1 49
- NK_2 50
- NK_3 51
- NK_4 52
- NK_5 53
- NK_6 54
- NK_7 55
- NK_8 56
- NK_9 57
- NK_0 48
- NK_MINUS 91
- NK_EQUAL 43
- NK_BACKSPACE 8
- NK_INSERT 324
- NK_HOME 315
- NK_PAGEUP 312
- NK_PAD_LOCK 366
- NK_PAD_SLASH 396
- NK_PAD_ASTERIS 391
- NK_PAD_MINUS 394
- NK_TAB 9
- NK_Q 81
- NK_W 87
- NK_E 69
- NK_R 82
- NK_T 84
- NK_Y 89
- NK_U 85
- NK_I 73
- NK_O 79
- NK_P 80
- NK_LBRACKET 93
- NK_RBRACKET 59
- NK_ENTER 13
- NK_DELETE 127
- NK_END 314
- NK_PAGEDOWN 313
- NK_PAD_7 315
- NK_PAD_8 317
- NK_PAD_9 312
- NK_PAD_PLUS 392
- NK_CAPSLOCK 311
- NK_A 65
- NK_S 83
- NK_D 68
- NK_F 70
- NK_G 71
- NK_H 72
- NK_J 74
- NK_K 75
- NK_L 76
- NK_SEMICOLON 44
- NK_APOSTROPHE 126
- NK_NUMBERSIGN 92
- NK_PAD_4 316
- NK_PAD_5 305
- NK_PAD_6 318
- NK_LSHIFT 306
- NK_BACKSLASH 226
- NK_Z 90
- NK_X 88
- NK_C 67
- NK_V 86
- NK_B 66
- NK_N 78
- NK_M 77
- NK_COMMA 46
- NK_PERIOD 47
- NK_SLASH 223
- NK_RSHIFT 306
- NK_UP 317
- NK_PAD_1 314
- NK_PAD_2 319
- NK_PAD_3 313
- NK_PAD_ENTER 13
- NK_LCTRL 308
- NK_LALT 309
- NK_SPACE 32
- NK_RALT 308+309
- NK_RCTRL 308
- NK_LEFT 316
- NK_DOWN 319
- NK_RIGHT 318
- NK_PAD_0 324
- NK_PAD_PERIOD 127
- NK_LMETA 91
- NK_RMETA 92
- NK_MENU 93