回 帖 发 新 帖 刷新版面

主题:关于键盘上下左右移动光标键的ASCII码???

看到过键盘上很多的键都有自己的ASCII码,好多书上都没有给全,查查网站,好像就没有找到过上下左右移动光标键的ASC码,有的说得自定义,在delphi语言中有的说
上是38 下是40 左是37  右是39,不知道是不是对的,ASCII码是国际通用的,我想在QB中也行,但是看到过里面这个区帖子里有一个编菜单的程序,感觉不像是对的,引
   IF k$ = CHR$(0) + "P" THEN Mx = Mx + 1'  '按的是下键就加1
   IF k$ = CHR$(0) + "H" THEN Mx = Mx - 1
   IF k$ = CHR$(13) THEN EXIT DO'      '按回车就退出
从上面这一程序段来看的话该是下键是80H,上键该是78H,而在通常的7位码ASCII表上是读不出来的,有高手知道吗???????

回复列表 (共15个回复)

沙发

左 = 37
上 = 38
右 = 39
下 = 40

' 上面这些数制都是十进制的!

标准的键盘扫描码应该都一样的吧!

板凳

两回事
方向键是检测不到ASCII码的
但可以获得键盘扫描码

3 楼

嗯!MOZ说的是对的 

4 楼

高手再看一下!!!
那刚才这个程序段里头
 DO
   WHILE k$ = "": k$ = INKEY$: WEND'  '当键盘有键按就退出小循环
   IF k$ = CHR$(0) + "P" THEN Mx = Mx + 1'  '按的是下键就加1
   IF k$ = CHR$(0) + "H" THEN Mx = Mx - 1
   IF k$ = CHR$(13) THEN EXIT DO'      '按回车就退出
   IF Mx > 4 THEN Mx = 1'        '超过4行光条就回到第一行
   IF Mx < 1 THEN Mx = 4' '这里最大最小的行可以用个变量来定义会更方
……
……
chr$(0)不是要取0的ascII代码吗,再加上P的ascII代码,两者加起来等于下键的扫描码吗???按上头所说的扫描码,我看怎么不等啊! 

5 楼

也可以这么认为。
但你要看到的是,
ASCII 码是单个字符的,
键盘扫描码,是通过ASCII扩展来表示的,
以空字符chr$(0)带头

6 楼

嗯!MOZ说的是对的 
 此帖被评20分 

这世界真是什么事情都会发生。

7 楼

呵呵
我是不太懂这一套评分的
看到有评的就乱点了一下!!!
不过这个问题我还是不怎么明白!
看编程相关知识里的关于键盘的部分也是一知半解!!
看来是脑子的问题!!要不你给我讲全一点!
呵呵!

8 楼

我晕!

9 楼

有点明白了!!!!
chr$(0)是空字符的意思啊  
我还以为是0的意思
是不是空的ASC码还是0的ASC码一样啊!!!

10 楼

到网上搜了搜,看到的扫描码都是0XA1类型的,上头高手所说的chr$(0)是不是开头的0啊,而后头所加的40就是A1的位置啊!!!
如果是的话那就明白了!

我来回复

您尚未登录,请登录后再回复。点此登录或注册