键盘(十)

2010-12-30 21:11:33 · 作者: · 浏览: 32840
只需要10个,而位元旗标却有24个。另外,程式通常用功能键作为键盘加速键,这样,它们通常不处理表6-8所示的按键:

表6-8
十进位十六进位WINUSER.H识别字
必需? IBM相容键盘 112-121 70-79 VK_F1到VK_F10 ˇ 功能键F1到F10 122-135 7A-87 VK_F11到VK_F24   功能键F11到F24 144 90 VK_NUMLOCK   Num Lock 145 91 VK_SCROLL   Scroll Lock

另外,还定义了一些其他虚拟键码,但它们只用於非标准键盘上的键,或者通常在大型主机终端机上使用的键。查看/ Platform SDK / User Interface Services / User Input / Virtual-Key Codes,可得到完整的列表。

lParam资讯
 

在四个按键讯息(WM_KEYDOWN、WM_KEYUP、WM_SYSKEYDOWN和WM_SYSKEYUP)中,wParam讯息参数含有上面所讨论的虚拟键码,而lParam讯息参数则含有对了解按键非常有用的其他资讯。lParam的32位分为6个栏位,如图6-1所示。


 

图6-1 lParam变数的6个按键讯息栏位

重复计数
 

重复计数是该讯息所表示的按键次数,大多数情况下,重复计数设定为1。不过,如果按下一个键之後,您的视窗讯息处理程式不够快,以致不能处理自动重复速率(您可以在「控制台」的「键盘」中进行设定)下的按键讯息,Windows就把几个WM_KEYDOWN或者WM_SYSKEYDOWN讯息组合到单个讯息中,并相应地增加重复计数。WM_KEYUP或WM_SYSKEYUP讯息的重复计数总是为1。

因为重复计数大於1指示按键速率大於您程式的处理能力,所以您也可能想在处理键盘讯息时忽略重复计数。几乎每个人都有文书处理或执行试算表时画面卷过头的经验,因为多余的按键堆满了键盘缓冲区,所以当程式