zoukankan      html  css  js  c++  java
  • 判断键是否按下

    //确定系统当前物理鼠标按钮与逻辑鼠标按钮的对应关系,当鼠标按钮被左右交换后,函数返回TRUE
    int IsMouseSwap = ::GetSystemMetrics(SM_SWAPBUTTON);
    //确定函数被调用时,相应按键是处于按下状态,还是处于弹起状态;并且按下此键前否调用过GetAsyncKeystate函数。
    //若最高位被置为1,则键被接下:
    //若最低位被置为1,则该键在前次调用GetAsyncKeystate以来处于被接下的状态
    //若为0,则另一进程或线程中的窗口拥有键盘焦点(或是win95)
    short iMouseKeyState = ::GetAsyncKeyState( IsMouseSwap ? VK_RBUTTON : VK_LBUTTON);
    BOOL IsPrimaryMouseBtnDown = ( iMouseKeyState & 0x8000) != 0;



    可以使用虚拟键码常数VD_SHIFT,VK_CONTROL,VK_MENU作为vKey参数的值,这样给出Shift Ctrl,AIt键的状态,而不区分是左键还是右键。
        Windows NT:可以使用如下的虚拟键码常数作为vKey的值来区分左右键的情况:
        VK_LSHIFT VK_RSHIFT;VW_LCONTROL VK_RCONTROL;VK_LMENU VK_RMENU
        这些可区分的左右键常量仅当调用GetKeyboardState,SetKeyboardstate,GetAsyncKeyState,GetKeyState和MaPViruaIKey函数时才可用。
  • 相关阅读:
    汇总博客-Alpha
    Beta冲刺总结
    用户调查报告
    Beta成果测试总结
    Beta 冲刺 (9/9)
    Beta 冲刺 (8/9)
    Beta 冲刺 (7/9)
    Beta 冲刺 (6/9)
    Beta 冲刺 (5/9)
    Beta 冲刺 (4/9)
  • 原文地址:https://www.cnblogs.com/huqingyu/p/42906.html
Copyright © 2011-2022 走看看