方向键的ASCII码是什么?

HotHat 2008-12-19 09:51:27
有人说:
#define VK_LEFT 0x25
#define VK_UP 0x26
#define VK_RIGHT 0x27
#define VK_DOWN 0x28
不知对不对?
这些数字对应的字符是 % & ' (
请问在C语言的应用程序中怎么使用方向键?
...全文
945 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
hotup 2008-12-21
  • 打赏
  • 举报
回复
好像要获得扫描码,不是ascll码
zclever 2008-12-20
  • 打赏
  • 举报
回复
一样的。一个16进制表示,一个十进制表示
LiTuX 2008-12-20
  • 打赏
  • 举报
回复
VK_XX是windowsSDK中定义的虚拟键盘码,是经过Windows系统消息机制处理过之后的消息参数,并不是键盘扫描码。

如果您是在开发WindowsSDK应用程序,当然可以在WM_KEYDOWN消息时判断wParam是不是对应的虚拟键,来使用方向键;

但是如果是简单的ANSI标准C程序,前面的虚拟码是不能用的,这时候就要用别的方式:方向键和功能键不是单个字符,每个你需要getchar两次。
  • 打赏
  • 举报
回复
学习
hfchyl 2008-12-20
  • 打赏
  • 举报
回复
学习
Think?? 2008-12-20
  • 打赏
  • 举报
回复
#define VK_LEFT 0x27
#define VK_UP 0x24
#define VK_RIGHT 0x26
#define VK_DOWN 0x25
kestre1 2008-12-19
  • 打赏
  • 举报
回复
linux下实测,方向键是一种组合件,测试机器dell 640M

int main(void)
{
int c;
while( (c = getchar()) != 'v'){
printf("%c == %x\n", c, c);
}
return 0;
}

^[[A /*上*/
== 1b
[ == 5b
A == 41

== a

^[[B /*下*/
== 1b
[ == 5b
B == 42

== a


^[[C /*右*/
== 1b
[ == 5b
C == 43

== a


^[[D /*左*/
== 1b
[ == 5b
D == 44

== a
bjlei86 2008-12-19
  • 打赏
  • 举报
回复
左VK_LEFT37

右VK_RIGHT39

上VK_UP38

下VK_DOWN40
yanzhi230 2008-12-19
  • 打赏
  • 举报
回复
up

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧