Keyboard Input
|
Symbol |
Value
(hex) |
Meaning |
|
VK_BACK |
08 |
Backspace
key |
|
VK_TAB |
09 |
Tab key |
|
VK_RETURN |
0D |
Enter key |
|
VK_SHIFT |
10 |
Shift key |
|
VK_CONTROL |
11 |
Ctrl key |
|
VK_PAUSE |
13 |
Pause key |
|
VK_ESCAPE |
1B |
Esc key |
|
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
keys |
|
VK_UP |
26 |
Up-arrow
key |
|
VK_RIGHT |
27 |
Right-arrow
key |
|
VK_INSERT |
2D |
Insert key |
|
VK_DELETE |
2E |
Delete key |
|
VK_HELP |
2F |
Help key |
|
VK_0 -
VK_9 |
30 – 39 |
0 – 9 keys |
|
VK_A –
VK_Z |
41 – 5A |
A – Z keys |
|
VK_F1 –
VK_F12 |
70 – 7B |
F1 – F12
keys |
Msgs sent
by Windows:
· WM_CHAR – sent when a key is pressed
o
wParam =
ASCII code
o
lParam =
bit-encoded key-data
· WM_KEYDOWN – sent when a key is down
o
wParam =
virtual key code
o
lParam =
bit-encoded key-data
· WM_KEYUP – sent on key release
o
wParam =
virtual-key code
o
lParam =
encoded key-data
Bit-encoded
Key-Data:
|
Bits |
Description |
|
0 – 15 |
Repeat
count |
|
16 – 23 |
Scan code
(OEM specific) |
|
24 |
Bool,
true if extended key |
|
25 – 28 |
Reserved |
|
29 |
Bool,
true if ALT down |
|
30 |
Bool,
true if last key same |
|
31 |
Bool,
true=press, false=release |
case
WM_CHAR;
{ // get ASCII code & bits
int
ascii_code = (int) wparam;
int
key_bits = (int) lparam;
// do what ever …
return(0);
}
case
WM_KEYDOWN;
{ // get virtual_code
& data bits
int
virtualCode = (int)wparam;
int
keyBits = (int)lparam;
switch(virtualCode)
{ case VK_RIGHT:
{} break;
…
default: break;
}
return(0);
}