• vc 判断哪个按键 被按下 消息 按键 状态


     

    测试Numlock 是否是亮的

    环境控制台程序;

    #include "stdafx.h"
    #include <stdio.h>
    #include <conio.h>
    #include <windows.h>

    bool CrnGetNumLockState();

    int _tmain(int argc, _TCHAR* argv[])
    {
    if(CrnGetNumLockState())
       printf("NUM-Lock is light ");
    else
       printf("Num-Lock is light-off ");
    getch();
    return 0;
    }

    bool CrnGetNumLockState()
    {
        BYTE btKeyState[256];
        GetKeyboardState((LPBYTE)&btKeyState);

        return btKeyState[VK_NUMLOCK] & 1;
    }

    判断哪个按键被按下

    MFC

    BOOL CDemoDlg::PreTranslateMessage(MSG* pMsg)
    {
    // TODO: 在此添加专用代码和/或调用基类
    // 假如截获键盘按下消息,就分析按下的哪个键,然后给相应的按钮发送消息

    if(pMsg->message==WM_KEYDOWN)
    {
       UINT iKey=(UINT)pMsg->wParam;
       switch(iKey)
       {
       case VK_NUMPAD0:

        {
         HWND hwnd = ::GetDlgItem(m_hWnd,IDC_EDIT_IN);

         ::SetWindowText(hwnd, "0");
         CString key = "VK_NUMPAD0";
         KeyRun(key);
         ::SetFocus(m_hWnd);
        }
        break;
       case VK_NUMPAD1:
        {
         HWND hwnd = ::GetDlgItem(m_hWnd,IDC_EDIT_IN);

         ::SetWindowText(hwnd, "1");
         CString key = "VK_NUMPAD1";
         KeyRun(key);
         ::SetFocus(m_hWnd);
        }
        break;
       case VK_NUMPAD2:
        {
         HWND hwnd = ::GetDlgItem(m_hWnd,IDC_EDIT_IN);

         ::SetWindowText(hwnd, "2");
         CString key = "VK_NUMPAD2";
         KeyRun(key);
         ::SetFocus(m_hWnd);
        }
        break;
       case VK_NUMPAD3:
        {
         HWND hwnd = ::GetDlgItem(m_hWnd,IDC_EDIT_IN);

         ::SetWindowText(hwnd, "3");
         CString key = "VK_NUMPAD3";
         KeyRun(key);
         ::SetFocus(m_hWnd);
        }
        break;
       case VK_NUMPAD4:
        {
         HWND hwnd = ::GetDlgItem(m_hWnd,IDC_EDIT_IN);

         ::SetWindowText(hwnd, "4");
         CString key = "VK_NUMPAD4";
         KeyRun(key);
         ::SetFocus(m_hWnd);
        }
        break;
       case VK_NUMPAD5:
        {
         HWND hwnd = ::GetDlgItem(m_hWnd,IDC_EDIT_IN);

         ::SetWindowText(hwnd, "5");
         CString key = "VK_NUMPAD5";
         KeyRun(key);
         ::SetFocus(m_hWnd);
        }
        break;
       case VK_NUMPAD6:
        {
         HWND hwnd = ::GetDlgItem(m_hWnd,IDC_EDIT_IN);

         ::SetWindowText(hwnd, "6");
         CString key = "VK_NUMPAD6";
         KeyRun(key);
         ::SetFocus(m_hWnd);
        }
        break;
       case VK_NUMPAD7:
        {
         HWND hwnd = ::GetDlgItem(m_hWnd,IDC_EDIT_IN);

         ::SetWindowText(hwnd, "7");
         CString key = "VK_NUMPAD7";
         KeyRun(key);
         ::SetFocus(m_hWnd);
        }
        break;
       case VK_NUMPAD8:
        {
         HWND hwnd = ::GetDlgItem(m_hWnd,IDC_EDIT_IN);

         ::SetWindowText(hwnd, "8");
         CString key = "VK_NUMPAD8";
         KeyRun(key);
         ::SetFocus(m_hWnd);
        }
        break;
       case VK_NUMPAD9:
        {
         HWND hwnd = ::GetDlgItem(m_hWnd,IDC_EDIT_IN);

         ::SetWindowText(hwnd, "9");
         CString key = "VK_NUMPAD9";
         KeyRun(key);
         ::SetFocus(m_hWnd);
        }
        break;

       default:
        break;
       }
    }
    return CDialog::PreTranslateMessage(pMsg);
    }

  • 相关阅读:
    Nginx之keepalived高可用工具
    Linux安装Nginx
    Nginx解决服务器宕机问题
    前端知识小札
    SQL入门(3):定义约束/断言assertion/触发器trigger
    SQL入门(2): Oracle内置函数-字符/数值/日期/转换/NVL/分析函数与窗口函数/case_decode
    Excel VBA入门(8): 快捷键/内置常量/代码调试/错误处理/代码优化
    小学生都看得懂的C语言入门(6): 字符串
    小学生都看得懂的C语言入门(5): 指针
    小学生都看得懂的C语言入门(4): 数组与函数
  • 原文地址:https://www.cnblogs.com/sharecenter/p/5620995.html
Copyright © 2020-2023  润新知