测试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\n");

else

   printf("Num-Lock is light-off\n");

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);

}

vc 判断哪个按键 被按下 消息 按键 状态的更多相关文章

  1. [置顶] Android事件—单选按键和下拉按键

    在平常的开发中单选按键和下拉按键是非常常用的2个点击事件.首先介绍下单选按键 1:单选按键,单选的主键是radiogroup 这个主键也是很重要的 首先介绍下主键的布局 <?xml versio ...

  2. JavaScript判断鼠标滑轮是向下还是向上滚动

    我们常用的就是鼠标,鼠标中键一般都用于滑动网页,但是网页中很多很炫的效果,使用鼠标滑轮操作更好. 当然对于手机就没有这个设备了,所以就不用考虑手机端的实现方法,手机端有触摸滑动事件. 使用JavaSc ...

  3. 滚动条大于120px时,判断pc端的情况下,导航条固定定位

      //滚动条大于120px时,判断pc端的情况下,导航条固定定位 $(window).scroll(function(){ var viewWidth=$(document).width() var ...

  4. JavaScript onkeydown事件入门实例(键盘某个按键被按下)

    JavaScript onkeydown 事件 用户按下一个键盘按键时会触发 onkeydown 事件.与 onkeypress事件不同的是,onkeydown 事件是响应任意键按下的处理(包括功能键 ...

  5. linux下获取按键响应事件【转】

    本文转载自:https://my.oschina.net/u/157503/blog/91548 1.问题 通过一个死循环将读取键盘对应的设备文件将触发键盘事件在屏幕上打印出来,按esc退出程序 代码 ...

  6. 监控Mysql主从环境下Slave延迟状态的操作记录

    在MySQL主从环境下,通常会根据Seconds_Behind_Master的值来判断slave的延迟状态,这么做在大部分情况下尚可接受,但其实是并不够准确的.对于Slave延迟状态的监控,应该考虑多 ...

  7. rabbitmq 消息的状态转换

    tutorial:http://www.rabbitmq.com/tutorials/tutorial-two-java.html 这里解释接收消息端关于 acknowledge和prefetch的设 ...

  8. Android中判断网络连接是否可用及监控网络状态

    Android中判断网络连接是否可用及监控网络状态 作者: 字体:[增加 减小] 类型:转载 获取网络信息需要在AndroidManifest.xml文件中加入相应的权限,接下来详细介绍Android ...

  9. 消息队列状态:struct msqid_ds

    Linux的消息队列(queue)实质上是一个链表, 它有消息队列标识符(queue ID). msgget创建一个新队列或打开一个存在的队列; msgsnd向队列末端添加一条新消息; msgrcv从 ...

随机推荐

  1. 剑指offer系列18---顺时针打印矩阵

    [题目]定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数.要求时间复杂度是O(1).push pop min [思路]设计一个辅助栈,当新加入的原数据栈中的数小于辅助栈顶的数时就加 ...

  2. 【转】Linux 的启动流程

    半年前,我写了<计算机是如何启动的?>,探讨BIOS和主引导记录的作用. 那篇文章不涉及操作系统,只与主板的板载程序有关.今天,我想接着往下写,探讨操作系统接管硬件以后发生的事情,也就是操 ...

  3. 启动Memcache,出现memcached: error while loading shared libraries: libevent-1.4.so.1: cannot open shared

      1.有可能是装了多个 libevent而导致memcache无法识别哪一个,解决方法就是卸载掉一个libevent 2.只安装了一个libevent,但是也报这个错,解决方法 32位系统下:ln ...

  4. Env:Winmanager插件使用

    转自:http://www.cnblogs.com/feichexia/archive/2012/11/06/vim_WinManager.html 1.准备winmanger插件,从下面网址下即可: ...

  5. sublime text2 css格式化插件

    插件下载地址:https://gist.github.com/2863474 插件,可以将CSS格式化成一行,也可以将一行格式化成多行. 下载解压缩之后,将compact_expand_css_com ...

  6. 使用 HTML5 Shiv 让 IE 支持 HTML5

    HTML5 Shiv 使用 html5.js 必须在页面head元素内调用(因为 IE 必须在元素解析前知道这个元素,所以这个 JS 文件不能在页面底部调用.) 作者已经把js文件放在Google c ...

  7. C#动态调用C++编写的DLL函数

    C#动态调用C++编写的DLL函数 动态加载DLL需要使用Windows API函数:LoadLibrary.GetProcAddress以及FreeLibrary.我们可以使用DllImport在C ...

  8. RabbitMQ介绍4 - 编程(C#客户端示例)

    C#终端的说明文档: http://www.rabbitmq.com/dotnet-api-guide.html 这里介绍使用RabbitMQ的几种典型场景. 1. 简单direct模式( http: ...

  9. 一个超级简单的HTML模板框架源代码以及使用示例

    HTML模板框架源代码 var HtmlTemplate = (function () { function HtmlTemplate(htmlSource) { this.htmlSource = ...

  10. git简单使用和说明文件的书写

    一. git 简单使用 1.注册 https://github.com/ 2.初始化 配置 git config --global user.name "Your Name" gi ...