|
A键,再释放Shift键,就会输入大写的A,而视窗讯息处理程式会接收到五个讯息,如表6-11所示:
|
| WM_KEYDOWN |
虚拟键码VK_SHIFT (0x10) |
| WM_KEYDOWN |
「A」的虚拟键码(0x41) |
| WM_CHAR |
「A」的字元代码(0x41) |
| WM_KEYUP |
「A」的虚拟键码(0x41) |
| WM_KEYUP |
虚拟键码VK_SHIFT(0x10) |
Shift键本身不产生字元讯息。
如果使用者按住A键,以使自动重复产生一系列的按键,那么对每条WM_KEYDOWN讯息,都会得到一条字元讯息,如表6-12所示:
| WM_KEYDOWN |
「A」的虚拟键码(0x41) |
| WM_CHAR |
「a」的字元代码(0x61) |
| WM_KEYDOWN |
「A」的虚拟键码(0x41) |
| WM_CHAR |
「a」的字元代码(0x61) |
| WM_KEYDOWN |
「A」的虚拟键码(0x41) |
| WM_CHAR |
「a」的字元代码(0x61) |
| WM_KEYDOWN |
「A」的虚拟键码(0x41) |
| WM_CHAR |
「a」的字元代码(0x61) |
| WM_KEYUP |
「A」的虚拟键码(0x41) |
如果某些WM_KEYDOWN讯息的重复计数大於1,那么相应的WM_CHAR讯息将具有同样的重复计数。
组合使用Ctrl键与字母键会产生从0x01(Ctrl-A)到0x1A(Ctrl-Z)的ASCII控制代码,其中的某些控制代码也可以由表6-13列出的键产生:
ANSI
C控制字元
| Backspace |
0x08 |
Ctrl-H |
\b |
| Tab |
0x09 |
Ctrl-I |
\t |
| Ctrl-Enter |
0x0A |
Ctrl-J |
\n |
| Enter |
0x0D |
Ctrl-M |
\r |
| Esc |
0x1B |
Ctrl-[ |
最右列给出了在ANSI
C中定义的控制字元,它们用於描述这些键的字元代码。
有时Windows程式将Ctrl与字母