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从 ...
随机推荐
- 03 在Linux下安装Myeclipse及Tomcat(含下载)
测试环境: 主机系统:Win 7 虚拟机:VMware workstation 11.1.0 虚拟机OS: centos 6.5 64位 Kernel 2.6.32-431-e16.x86_64 My ...
- LinearLayout属性baselineAligned的作用及baseline
相信大家对LinearLayout已经相当熟悉,但你们是否了解它的属性baselineAligned呢? Android官方文档是这么描述的:
- 通过profile 用maven命令打不同配置的变量包
profiles定义如下 <profiles> <profile> <id>local</id> ...
- 网页颜色RGB记法和16进制记法转化方法
A=>10,B=>11,C=>12,D=>13,E=>14,F=>15 看一个例子: 254,112,85 255/16 等于 15 余 14 那么它对应的应该是F ...
- 【原】sql 将某列拼成一个字符串
SQL Server中,写存储过程,时常会碰到这样一个需求:从某个表中取某一列,然后需要将这一列数据以某种形式拼成一个字符串,以供后面使用,下面这种方法能够实现此需求. --取说明书模块枚举,结果格式 ...
- linux下的g++编译器安装
再debian下直接apt-get install gcc g++就可以了.按照类似的逻辑,再Fedora下yum install gcc g++ 报告无法找到g++包. 查了一下,原来这个包的名字叫 ...
- 回调--一个经典例子让你彻彻底底理解java回调机制
本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/17483273),请尊重他人的辛勤劳动成果,谢谢 以前不理解什么叫回调 ...
- ylbtech-dbs:ylbtech-1,FAM(家庭资产管理系统)
ylbtech-dbs:ylbtech-1,FAM(家庭资产管理系统) -- =============================================-- Family Assets ...
- iOS 热点、通话时候TabView的Frame调整
- (void)application:(UIApplication *)application didChangeStatusBarFrame:(CGRect)oldStatusBarFrame{ ...
- C++学习16 继承时的名字遮蔽
如果派生类中的成员变量和基类中的成员变量重名,那么就会遮蔽从基类继承过来的成员变量.所谓遮蔽,就是使用新增的成员变量,而不使用继承来的. 成员函数也一样,如果函数名和参数签名都相同,就会造成遮蔽.如果 ...