关于如何在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++中单个键盘按键的响应相关推荐

  1. VC+API模拟键盘按键(详解篇)

    模拟键盘按键 ━━━━━━━━━━━━━━━━━━━━━━━━ 以前就想过如何模拟键盘按键向其他程序发送控制命令,但总是无功而返,这次也不例外. 模拟按键的方法很多,如PostMessage(不能用S ...

  2. [c语言]在程序中检测键盘按键

    如何在程序中检测键盘 首先 我们直接上代码 #include <conio.h> #include <stdio.h> int main() { while (1) { swi ...

  3. Unity中模拟键盘按键(转)

    做手机游戏时需要通过UI上的按钮控制物体,原来的脚本用于电脑端上运行,通过键盘按下按键,Input.GetAxisRaw("Vertical")和"Horizontal& ...

  4. 随笔-在Unity3d中模拟键盘按键

    在Unity3d中用代码模拟按键很早之前就想试试了,刚好最近需要,在网上查了一些资料后,其实也蛮简单的 ,直接上代码 [DllImport("user32.dll", EntryP ...

  5. VC sendinput模拟键盘按键

    介绍 sendinput在某些应用上面模拟按键无效,需要转换成unicode字符才可以模拟,特记录下. 代码 #include <stdio.h> #include <stdint. ...

  6. python调用linux软键盘_在Linux中使用Python模拟键盘按键

    之前在做自动化测试中需要用Python在linux中模拟Ctrl+V 进行路径粘贴,试了很多种方法,起初用了xerox和pyperclip这两个python库,但打开对话框后调用粘贴API无法进行粘贴 ...

  7. c# Form中的键盘响应

    由于工程项目需要,要在全屏Form中加上键盘ESC的响应,实现的效果就是:全屏中press键盘上的Escape键,程序结束. 原本觉得挺简单的功能,却捣鼓了一会儿才解决.大致总结一下步骤: 首先在fo ...

  8. python 模拟键盘 linux,在Linux中使用Python模拟键盘按键,linuxpython

    在Linux中使用Python模拟键盘按键,linuxpython 之前在做自动化测试中需要用Python在linux中模拟Ctrl+V 进行路径粘贴,试了很多种方法,起初用了xerox和pyperc ...

  9. 在Linux中使用Python模拟键盘按键

    之前在做自动化测试中需要用Python在linux中模拟Ctrl+V 进行路径粘贴,试了很多种方法,起初用了xerox和pyperclip这两个python库,但打开对话框后调用粘贴API无法进行粘贴 ...

最新文章

  1. 手工计算深度学习模型中的参数数量
  2. 【Clique Problem】
  3. 6月16号=》156页-160页
  4. c语言查找星期几,新手做的日历表及查找日期是星期几
  5. Windows域控 批量设置用户下次登录 修改密码【全域策略生效】
  6. sparse模式下multicast配置
  7. 成员变量和局部变量详解
  8. ubuntu20.04安装搜狗输入法
  9. mysql排列组合实现_排列组合的实现
  10. 从你的全世界路过—一群程序员的稻城亚丁游记
  11. [论文阅读] (22)图神经网络及认知推理总结和普及-清华唐杰老师
  12. GeoMesa 详细介绍
  13. 将png转为webp_如何将Google的WEBP图像另存为JPEG或PNG
  14. python 测试框架nose (nosetests)
  15. tlp导致linux运行缓慢,通过TLP改善Linux中的电源使用 | MOS86
  16. JS实现段落的收缩与展开
  17. 不正确的移动类型的更新控制(输入101 X X)
  18. 阿里宣布组织大变动:集团迎来首位 80 后 CTO、张勇亲自挂帅阿里云!
  19. 知识蒸馏之自蒸馏【附代码】
  20. android多语言切换失效

热门文章

  1. 隐私保护与隐私计算研讨会 | 余维仁:大数据时代下需要各界更新对个人隐私保护的固有认识
  2. Mac 开机密码忘记
  3. 宝塔Linux面板——用正确的入口登录面板
  4. 守护线程(Daemon)、钩子线程(Hook)简述
  5. python超级大脑游戏代码_Super Brain超级大脑
  6. 关系模型知识点总结(3)—— 关系操作中的关系代数(含题目及详细分析)
  7. 德国申根签证,研究生参加国际学术会议商务签出签经验分享
  8. 大学图书馆空间再造与服务创新研究
  9. canpcb阻抗_CAN网络 其特性阻抗及终端阻抗
  10. CSS,何谓CSS,如何使用CSS文件