| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4588 人关注过本帖, 1 人收藏
标题:关于“GetKeyState”函数的返回值
取消只看楼主 加入收藏
William1949
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:111
专家分:0
注 册:2009-3-17
结帖率:63.64%
收藏(1)
 问题点数:0 回复次数:1 
关于“GetKeyState”函数的返回值
有资料介绍说:GetKeyState 函数的返回值,其中有一段话是这样说的:
如果开关键打开,则位0设为1(开关键包括CapsLock, NumLock,ScrollLock);即(0000000000000001),如果某键正处于按下状态,则位15为1;即(1000000000000000),如已经抬起,则为0
为什么我实际测试的结果与上述不符?
问题一:不管开关键(CapsLock, NumLock,ScrollLock)是否打开或关闭,返回值都是-127、-128交替出现,貌似与开关键无关
问题二:返回值是-127(或-128)转成二进制是:1111111110000001 ,位15~位7都是1;根本不是上面说的“位15为1;即(1000000000000000)”




搜索更多相关主题的帖子: 函数 返回值 关键 打开 交替 
2018-01-11 10:39
William1949
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:111
专家分:0
注 册:2009-3-17
收藏
得分:0 
你说的没错,共4种结果:0、1、-127、-128
不过0 和 1 是键抬起时的结果;而-127 和 -128 是键按下时的结果,(我忽略键抬起时的状态)
当我把开关键(CapsLock, NumLock,ScrollLock)全部关闭;(使键盘上的灯全灭),进行测试
例如:用“Text1_KeyDown”事件
Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
    Debug.Print GetKeyState(vbKeyA) '按下“A”键,返回-127,抬起后再按下“A”键,返回-128,-127、-128交替出现
End Sub

当我把某一开关键打开,如 NumLock;(使键盘上的灯亮),再用上段进行测试,返回的结果是相同的(也是-127、-128交替出现
)。因此我觉得“GetKeyState”函数不能反应出开关键的状态,有些资料有误导
2018-01-12 13:33
快速回复:关于“GetKeyState”函数的返回值
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023226 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved