获取键盘上某键的状态

::GetKeyState的使用。

在C++ builder Form窗体中,想要在任何时候响应全局组合键可以Shortcut事件中编写代码。


    int otherkey=::GetKeyState(VK_SHIFT);
    if (Msg.CharCode==VK_F6&&otherkey<0)
    {
       
       //事件中的代码
        lblsdys->Visible=!lblsdys->Visible;//
         edtDZ_t_sd->Visible=!edtDZ_t_sd->Visible;
    
    }
百度百科中的介绍...

::GetKeyState(VK_SHIFT) > 0 没按下
::GetKeyState(VK_SHIFT) < 0被按下
返回值给出了给定虚拟键的状态,状态如下:
若高序位为1,则键处于DOWN状态,否则为UP状态。
若低序位为1,则键被触发。例如CAPS LOCK键,被找开时将被触发。若低序位置为0,则键被关闭,且不被触发。触发键在 键盘上的指示灯,当键被触发时即亮,键不被触发时即灭。
备注:当给定线程从它的 消息队列中读键消息时,该函数返回的键状态发生改变。该状态并不反映与硬件相关的中断级的状态。使用GetAsyncKeyState可获取这一信息。
应用程序可以使用GetKeyState来响应一个由 键盘输入产生的消息。此时该程序获得的是在输入消息生成时该键位的状态。
欲检取所有虚拟键状态信息,可以使用GetKeyboardState函数。
应用程序可以使用 虚拟键码常数VK_SHIFT,VK_CONTROL和VK_MENU作为nVirtKey参数的值。它给出shift,ctrl或alt键的值而不区分左右键,应用程序也可以使用如下的 虚拟键码常数作nVirtKey的值来区分前述键的左键、右键的情形。
VK_LSHIFT,VK_RSHIFT;VK_LCONTROL,VK_RCONTROL;VK_LMENU,VK_RMENU。
仅当应用程序调用GetKeyboardSlate,SetKeyboardState,GetAsyncKeystate;GetKeyState和MapVirtualKey函数时,才可用这些区分左右键的常数。
Windows CE:GetKeyState函数仅能用于检查如下虚拟键的DOWN状态。
VK_LSHIFT,VKRSHIFT,VK_LCONTROL;VK_RCONTROL;VK_LMENU,VK_RMENU。
GetKeyState函数只能用于检查VK_CAPITAL虚拟键的触发状态。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值