VC++中单个键盘按键的响应
关于如何在VC++程序中自定义热键(或称组合键)及其响应,我在之前的博客中已经作了详细的介绍,那么当遇到的是单个键盘按键的响应时,我们又该怎么解决呢?这时,我们可以采用afx_msg BOOL PreTranslateMessage (MSG* pMsg) 这个函数很方便的实现。
但是在此之前,我们必须首先了解键盘按键对应的十进制ASCII码值,下面这张表是每个键盘按键对应的十进制ASCII码值表,会给我们带来很大的方便:
Esc |
27 |
#3 |
51 |
>. |
190 |
M |
77 |
← |
37 |
F1 |
112 |
$4 |
52 |
?/ |
191 |
N |
78 |
↑ |
38 |
F2 |
113 |
%5 |
53 |
Ctrl |
17 |
O |
79 |
→ |
39 |
F3 |
114 |
^6 |
54 |
左徽标 |
91 |
P |
80 |
↓ |
40 |
F4 |
115 |
&7 |
55 |
右徽标 |
92 |
Q |
81 |
Num Lock |
144 |
F5 |
116 |
*8 |
56 |
Alt |
18 |
R |
82 |
/ |
111 |
F6 |
117 |
(9 |
57 |
Space |
32 |
S |
83 |
* |
106 |
F7 |
118 |
_- |
189 |
鼠标右快捷键 |
93 |
T |
84 |
- |
109 |
F8 |
119 |
+= |
187 |
A |
65 |
U |
85 |
+ |
107 |
F9 |
120 |
Backspace |
8 |
B |
66 |
V |
86 |
. |
110 |
F10 |
121 |
Tab |
9 |
C |
67 |
W |
87 |
0 |
96 |
F11 |
122 |
{[ |
219 |
D |
68 |
X |
88 |
1 |
97 |
F12 |
123 |
}] |
221 |
E |
69 |
Y |
89 |
2 |
98 |
PrScrn SysRq |
44 |
|\ |
220 |
F |
70 |
Z |
90 |
3 |
99 |
Scroll Lock |
145 |
Caps Lock |
20 |
G |
71 |
Insert |
45 |
4 |
100 |
Pause Break |
19 |
:; |
186 |
H |
72 |
Home |
36 |
5 |
101 |
~` |
192 |
“’ |
222 |
I |
73 |
PgUp |
33 |
6 |
102 |
)0 |
48 |
Enter |
13 |
J |
74 |
Delete |
46 |
7 |
103 |
!1 |
49 |
Shift |
16 |
K |
75 |
End |
35 |
8 |
104 |
@2 |
50 |
<, |
188 |
L |
76 |
PgDn |
34 |
9 |
105 |
注:表中的阴影部分为键盘上的数字小键盘分区。
下面结合实例来详细说明(完整实例可在我的CSDN资源中下载:http://download.csdn.net/detail/margin1988/6648153):
(1)在对话框.h文件中添加函数声明:
afx_msg BOOL PreTranslateMessage(MSG* pMsg);
(2)在对话框的.cpp文件中实现该函数功能:
BOOL CPoint23Dlg::PreTranslateMessage(MSG* pMsg)
{if(pMsg->message == WM_KEYDOWN) {switch (pMsg->wParam){case 65:MessageBox("您按了“A键”");break;//其它按键响应}return true;//不再响应其它按键(很重要)}return CDialog::PreTranslateMessage(pMsg);
}
VC++中单个键盘按键的响应相关推荐
- VC+API模拟键盘按键(详解篇)
模拟键盘按键 ━━━━━━━━━━━━━━━━━━━━━━━━ 以前就想过如何模拟键盘按键向其他程序发送控制命令,但总是无功而返,这次也不例外. 模拟按键的方法很多,如PostMessage(不能用S ...
- [c语言]在程序中检测键盘按键
如何在程序中检测键盘 首先 我们直接上代码 #include <conio.h> #include <stdio.h> int main() { while (1) { swi ...
- Unity中模拟键盘按键(转)
做手机游戏时需要通过UI上的按钮控制物体,原来的脚本用于电脑端上运行,通过键盘按下按键,Input.GetAxisRaw("Vertical")和"Horizontal& ...
- 随笔-在Unity3d中模拟键盘按键
在Unity3d中用代码模拟按键很早之前就想试试了,刚好最近需要,在网上查了一些资料后,其实也蛮简单的 ,直接上代码 [DllImport("user32.dll", EntryP ...
- VC sendinput模拟键盘按键
介绍 sendinput在某些应用上面模拟按键无效,需要转换成unicode字符才可以模拟,特记录下. 代码 #include <stdio.h> #include <stdint. ...
- python调用linux软键盘_在Linux中使用Python模拟键盘按键
之前在做自动化测试中需要用Python在linux中模拟Ctrl+V 进行路径粘贴,试了很多种方法,起初用了xerox和pyperclip这两个python库,但打开对话框后调用粘贴API无法进行粘贴 ...
- c# Form中的键盘响应
由于工程项目需要,要在全屏Form中加上键盘ESC的响应,实现的效果就是:全屏中press键盘上的Escape键,程序结束. 原本觉得挺简单的功能,却捣鼓了一会儿才解决.大致总结一下步骤: 首先在fo ...
- python 模拟键盘 linux,在Linux中使用Python模拟键盘按键,linuxpython
在Linux中使用Python模拟键盘按键,linuxpython 之前在做自动化测试中需要用Python在linux中模拟Ctrl+V 进行路径粘贴,试了很多种方法,起初用了xerox和pyperc ...
- 在Linux中使用Python模拟键盘按键
之前在做自动化测试中需要用Python在linux中模拟Ctrl+V 进行路径粘贴,试了很多种方法,起初用了xerox和pyperclip这两个python库,但打开对话框后调用粘贴API无法进行粘贴 ...
最新文章
- 手工计算深度学习模型中的参数数量
- 【Clique Problem】
- 6月16号=》156页-160页
- c语言查找星期几,新手做的日历表及查找日期是星期几
- Windows域控 批量设置用户下次登录 修改密码【全域策略生效】
- sparse模式下multicast配置
- 成员变量和局部变量详解
- ubuntu20.04安装搜狗输入法
- mysql排列组合实现_排列组合的实现
- 从你的全世界路过—一群程序员的稻城亚丁游记
- [论文阅读] (22)图神经网络及认知推理总结和普及-清华唐杰老师
- GeoMesa 详细介绍
- 将png转为webp_如何将Google的WEBP图像另存为JPEG或PNG
- python 测试框架nose (nosetests)
- tlp导致linux运行缓慢,通过TLP改善Linux中的电源使用 | MOS86
- JS实现段落的收缩与展开
- 不正确的移动类型的更新控制(输入101 X X)
- 阿里宣布组织大变动:集团迎来首位 80 后 CTO、张勇亲自挂帅阿里云!
- 知识蒸馏之自蒸馏【附代码】
- android多语言切换失效