测试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. Sublime发布Markdown博客

    Sublime发布Markdown博客 下载Sublime插件 插件 按照上面网页中的说明操作 修改插件包中的文件cnblogs.py 第84行,'author'改为自己的邮箱 第86行,'categ ...

  2. 支付宝客户端支付配置RSA公钥的问题错误,导致收不到回发通知

    没收到通知的原因是你们的商户公钥上传地址弄错了,应该上传到合作伙伴管理,您上传到无线wap哪里了,把您的公钥,从无线wap哪里复制贴到合作伙伴管理即可

  3. JSON.stringify(),JSON.parse(),toJSON()方法使用

    JSON.stringify(),将value(Object,Array,String,Number...)序列化为JSON字符串    JSON.parse(), 将JSON数据解析为js原生值   ...

  4. [Hibernate] - Load and Get

    Hibernate中使用session的load(...)和get(...)区别: 1.load()方法是在返回的类被后期调用时,才会去提交SQL查询数据库. 2.get()方法是在调用get()时就 ...

  5. JavaScript中的继承模式总结

    一.总结: //js中的几种继承 //原型链的问题,包含引用类型的原型属性会被实例共享,子类型无法给超类型传递参数 function SuperType() { this.colors = [&quo ...

  6. Java System.out的输出缓冲

    今天学习了java的正则表达式api,在写例子的时候遇到了让人摸不着头脑的问题:从控制台输入了字符串,却没有输出;直到输入的字符串不能匹配的时,一起与Unabled to match输出.相关代码如下 ...

  7. 转--Android资源总结(环境搭建/ 反编译工具)

    在Android发展前景相当好的情况下,本人最近搜集了一些关于Android的相关资源,当然包含以前发布的博客内容,进行了一次大整合,希望对和我一样是Android的初学者管用,如在文章中有所错误,敬 ...

  8. Spring中IOC和AOP的详细解释

    我们是在使用Spring框架的过程中,其实就是为了使用IOC,依赖注入,和AOP,面向切面编程,这两个是Spring的灵魂. 主要用到的设计模式有工厂模式和代理模式. IOC就是典型的工厂模式,通过s ...

  9. 深入Java集合学习系列:HashMap的实现原理

    1.    HashMap概述: HashMap是基于哈希表的Map接口的非同步实现.此实现提供所有可选的映射操作,并允许使用null值和null键.此类不保证映射的顺序,特别是它不保证该顺序恒久不变 ...

  10. 02.lib-v1.js

    /* Date: 2014-07-29 4:06:07 [PM] */ function StringBuilder() { this.strings = new Array, this.length ...