设为首页 加入收藏

TOP

键盘(十二)
2010-12-30 21:11:33 来源: 作者: 【 】 浏览:32449
Tags:键盘
息。

转换状态
 

如果键正被按下,则转换状态为0;如果键正被释放,则转换状态为1。对WM_KEYDOWN或者WM_SYSKEYDOWN讯息,此栏位为0;对WM_KEYUP或者WM_SYSKEYUP讯息,此栏位为1。

位移状态
 

在处理按键讯息时,您可能需要知道是否按下了位移键(Shift、Ctrl和Alt)或开关键(Caps Lock、Num Lock和Scroll Lock)。通过呼叫GetKeyState函式,您就能获得此资讯。例如:

如果按下了Shift,则iState值为负(即设定了最高位置位元)。如果Caps Lock键打开,则从

传回的值低位元被设为1。此位元与键盘上的小灯保持一致。

通常,您在使用GetKeyState时,会带有虚拟键码VK_SHIFT、VK_CONTROL和VK_MENU(在说明Alt键时呼叫)。使用GetKeyState时,您也可以用下面的识别字来确定按下的Shift、Ctrl或Alt键是左边的还是右边的:VK_LSHIFT、VK_RSHIFT、VK_LCONTROL、VK_RCONTROL、VK_LMENU、VK_RMENU。这些识别字只用於GetKeyState和GetAsyncKeyState(下面将详细说明)。

使用虚拟键码VK_LBUTTON、VK_RBUTTON和VK_MBUTTON,您也可以获得滑鼠键的状态。不过,大多数需要监视滑鼠键与按键相组合的Windows应用程式都使用其他方法来做到这一点-即在接收到滑鼠讯息时检查按键。实际上,位移状态资讯包含在滑鼠资讯中,正如您在下一章中将看到的一样。

请注意GetKeyState的使用,它并非即时检查键盘状态,而只是检查直到目前为止正在处理的讯息的键盘状态。多数情况下,这正符合您的要求。如果您需要确定使用者是否按下了Shift-Tab,请在处理Tab键的WM_KEYDOWN讯息时呼叫GetKeyState,带有参数VK_SHIFT。如果GetKeyState传回的值为负,那么您就知道在按下Tab键之前按下了Shift键。并且,如果在您开始处理Tab键之前,已经释放了Shift键也没有关系。您知道,在按下Tab键的时候Shift键是按下的。

首页 上一页 9 10 11 12 13 14 15 下一页 尾页 12/61/61
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇滑鼠 下一篇图形基础

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: