zoukankan      html  css  js  c++  java
  • MFC 关于按键状态获取

    alt键会阻断消息? moousemove
    alt键无法判断,按下一次 并松开一次状态改变一次
    #define KeyState GetAsyncKeyState
    BOOL bCtrlDown = (KeyState(VK_CONTROL) & 0xff00) > 0 ? TRUE : FALSE;//81 80
    BOOL bShiftDown = (KeyState(VK_SHIFT) & 0xff00) > 0 ? TRUE : FALSE;//81 80
    BOOL bAltDown = (KeyState(VK_MENU) & 0xff00) > 0 ? TRUE : FALSE;//81 80

    CString str;
    CString csCtrl;
    CString csAlt;
    CString csShift;
    csCtrl = bCtrlDown == TRUE ? _T("TRUE") : _T("FALSE");
    csShift = bShift == TRUE ? _T("TRUE") : _T("FALSE");
    csAlt = bAlt == TRUE ? _T("TRUE") : _T("FALSE");
    CString cstr;
    cstr.Format(_T("Ctrl:%d,Shift:%d,Alt:%d"), bCtrlDown, bShiftDown, bAltDown);
    txt2.SetWindowText(cstr);
    keydown按键触发
    void CKeyDownTestDlg::OnKeyDown(WPARAM wparam)
    {
    bool bDownValue = true;
    if (wparam == VK_CONTROL || wparam == VK_LCONTROL)
    {
    bCtrl = bDownValue;
    }

    //这个响应不及时,需要WM_SYSKEYDOWN才能响应
    if (wparam == VK_MENU || wparam == VK_LMENU || wparam == VK_RMENU)
    {
    bAlt = bDownValue;
    }
    if (wparam == VK_SHIFT || wparam == VK_LSHIFT)
    {
    bShift = bDownValue;
    }
    Update();
    }

  • 相关阅读:
    C# using的三种用法
    C# 匿名方法和Lambda表达式
    c#中内置委托
    c#委托中的匿名方法和lambda表达式
    java生成条形码
    根据日期筛选和模糊查询
    mysql中ifnull()方法的用法
    mysql数据库中的出发器
    动态SQL之<where>、<if>条件判断
    动态sql
  • 原文地址:https://www.cnblogs.com/yang131/p/14029984.html
Copyright © 2011-2022 走看看