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函数时才可用。
  • 相关阅读:
    关于Oracle
    form表单中包含特殊字符,需要转义。
    mysql5.7解压版安装步骤
    mysql报1055错误
    配置maven私有仓库
    全选,反选
    前后端数据交互(json)
    正则表达式匹配html标签里的中文
    excel创建行、插入行、设置样式
    Python 中文字符的输出
  • 原文地址:https://www.cnblogs.com/huqingyu/p/42906.html
Copyright © 2011-2022 走看看