通过这一段代码要设置F8为快捷键,他是如何设置成功的?VB小白 不明白为啥
keyResult=GetAsyncKeyState(119)IfkeyResult=-32767ThenIfMe.Visible=FalseThenMe.Visible...
keyResult = GetAsyncKeyState(119)
If keyResult = -32767 Then
If Me.Visible = False Then
Me.Visible = True
Me.SetFocus
Else
Me.Hide
End If
End If 展开
If keyResult = -32767 Then
If Me.Visible = False Then
Me.Visible = True
Me.SetFocus
Else
Me.Hide
End If
End If 展开
2个回答
展开全部
GetAsyncKeyState这个API函数是用来检测某个键的状态的,119是F8这个键的虚拟键码,因此GetAsyncKeyState(119)就是检测F8键的当前状态的意思。
这个函数的返回值中如果位15为1,表示该键目前处于按下状态;如果位0为1,则表示在上次调用GetAsyncKeyState函数后该键曾经被按过。
如果你不太明白什么叫“位”,下面我就简单说说:
一个整数的位15为1,用二进制表示就是 1000000000000000 ,16进制为&H8000,十进制为-32768;
而位0为1,就是 0000000000000001,也就是1,这个简单;
两者加起来就是 -32767 了。
不过用 If keyResult = -32767 Then 来判断键是否按下是不严谨的,应该这样:
If keyResult <> 0 Then
这个函数的返回值中如果位15为1,表示该键目前处于按下状态;如果位0为1,则表示在上次调用GetAsyncKeyState函数后该键曾经被按过。
如果你不太明白什么叫“位”,下面我就简单说说:
一个整数的位15为1,用二进制表示就是 1000000000000000 ,16进制为&H8000,十进制为-32768;
而位0为1,就是 0000000000000001,也就是1,这个简单;
两者加起来就是 -32767 了。
不过用 If keyResult = -32767 Then 来判断键是否按下是不严谨的,应该这样:
If keyResult <> 0 Then
深圳市容大彩晶科技有限公司
2024-11-20 广告
2024-11-20 广告
作为深圳市容大彩晶科技有限公司的工作人员,对于公司广告机的功能有一定的了解。公司的广告机是否支持多语言显示,具体需根据产品型号和功能配置来确定。但一般而言,现代广告机通常具备多语言显示的功能,以适应不同国家和地区的需求。建议直接查阅产品说明...
点击进入详情页
本回答由深圳市容大彩晶科技有限公司提供
2014-12-11
展开全部
GetAsyncKeyState,是一个函数,用来判断函数调用时指定虚拟键的状态。
119是[F8]
keyResult = GetAsyncKeyState(119) ‘按下F8键
If keyResult = -32767 Then '键盘按下状态
下面的判断
上面判断有没有按F8,有就执行下面的了啊。
119是[F8]
keyResult = GetAsyncKeyState(119) ‘按下F8键
If keyResult = -32767 Then '键盘按下状态
下面的判断
上面判断有没有按F8,有就执行下面的了啊。
追问
SetFocus 设置的焦点是F8吗?
追答
Me.SetFocus ‘是把焦点设置为窗体本身,不是F8
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询