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\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 判断哪个按键 被按下 消息 按键 状态的更多相关文章
- [置顶] Android事件—单选按键和下拉按键
在平常的开发中单选按键和下拉按键是非常常用的2个点击事件.首先介绍下单选按键 1:单选按键,单选的主键是radiogroup 这个主键也是很重要的 首先介绍下主键的布局 <?xml versio ...
- JavaScript判断鼠标滑轮是向下还是向上滚动
我们常用的就是鼠标,鼠标中键一般都用于滑动网页,但是网页中很多很炫的效果,使用鼠标滑轮操作更好. 当然对于手机就没有这个设备了,所以就不用考虑手机端的实现方法,手机端有触摸滑动事件. 使用JavaSc ...
- 滚动条大于120px时,判断pc端的情况下,导航条固定定位
//滚动条大于120px时,判断pc端的情况下,导航条固定定位 $(window).scroll(function(){ var viewWidth=$(document).width() var ...
- JavaScript onkeydown事件入门实例(键盘某个按键被按下)
JavaScript onkeydown 事件 用户按下一个键盘按键时会触发 onkeydown 事件.与 onkeypress事件不同的是,onkeydown 事件是响应任意键按下的处理(包括功能键 ...
- linux下获取按键响应事件【转】
本文转载自:https://my.oschina.net/u/157503/blog/91548 1.问题 通过一个死循环将读取键盘对应的设备文件将触发键盘事件在屏幕上打印出来,按esc退出程序 代码 ...
- 监控Mysql主从环境下Slave延迟状态的操作记录
在MySQL主从环境下,通常会根据Seconds_Behind_Master的值来判断slave的延迟状态,这么做在大部分情况下尚可接受,但其实是并不够准确的.对于Slave延迟状态的监控,应该考虑多 ...
- rabbitmq 消息的状态转换
tutorial:http://www.rabbitmq.com/tutorials/tutorial-two-java.html 这里解释接收消息端关于 acknowledge和prefetch的设 ...
- Android中判断网络连接是否可用及监控网络状态
Android中判断网络连接是否可用及监控网络状态 作者: 字体:[增加 减小] 类型:转载 获取网络信息需要在AndroidManifest.xml文件中加入相应的权限,接下来详细介绍Android ...
- 消息队列状态:struct msqid_ds
Linux的消息队列(queue)实质上是一个链表, 它有消息队列标识符(queue ID). msgget创建一个新队列或打开一个存在的队列; msgsnd向队列末端添加一条新消息; msgrcv从 ...
随机推荐
- 如何制作带MFC界面的MFC DLL
最近在做基于组件化MFC界面的开发,需要把界面封装到动态库中. 一:工程创建步骤 1.创建MFC DLL工程,选择 “在共享 DLL 中使用 MFC”. 2.运行时库选择:c/c++-->代码生 ...
- (转)扩展jquery easyui datagrid 之动态绑定列和数据
本文转载自:http://blog.csdn.net/littlewolf766/article/details/7336550 easyui datagrid 不支持动态加载列,上次使用的方法是自己 ...
- C++的头文件和实现文件分别写什么
在C++编程过程中,随着项目的越来越大,代码也会越来越多,并且难以管理和分析.于是,在C++中就要分出了头(.h)文件和实现(.cpp)文件,并且也有了Package的概念. 对于以C起步,C#作为& ...
- makefile学习笔记(多目录嵌套调用、变量使用)
http://blog.csdn.net/leexiang_han/article/details/9274229 学习了几天的makefile的嵌套调用编写也有一些心得,先声明,我也是初学者写文 ...
- 【原】C# decimal字符串转成整数
第一种方法: string na="1000.53"; int a=int.Parse(na.Substring(0,na.IndexOf('.')));//返回值a=1000 第 ...
- 黄聪:C#禁止Webbrowser中的脚本错误提示,自动屏蔽弹出窗口
using System; using System.Collections.Generic; using System.Text; using System.Windows.Forms; using ...
- Redis作者谈Redis应用场景(转)
毫无疑问,Redis开创了一种新的数据存储思路,使用Redis,我们不用在面对功能单调的数据库时,把精力放在如何把大象放进冰箱这样的问题上,而是利用Redis灵活多变的数据结构和数据操作,为不同的大象 ...
- jquery ajax 总是还未等到success回调就刷掉了,就进入了onError函数的错误案例分析
jquery ajax 总是还未等到success回调就刷掉了,就进入了onError函数的错误案例分析: 同样的请求同时请求了2次,然后第二次的请求把第一次的给刷掉了! (比如:<div on ...
- hibernate 大对象映射
1. 在pojo类中 用Blob类和Clob public class Student { private int id; private String name; private int age; ...
- DBA_Oracle AWR Report性能监控报表(案例)
2014-08-22 Created By BaoXinjian