vb键盘问题

来源:百度知道 编辑:UC知道 时间:2024/06/08 02:25:59
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
shifttest = Shift And 7
Select Case shifttest
Case 1
Print "你按下shift键"
Case 2
Print "你安下了ctrl键"
End Select
End Sub
我想问一下,shifttest=shift+7里的"shift+7"是什么意思,说详细点.
先谢谢!
是and 7不是+7,我打错了,能不能说个例子

你要看不懂,就改一下吧:

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Select Case Shift
Case 0
Print "你啥也没按"
Case 1
Print "你按下shift键"
Case 2
Print "你安下了ctrl键"
Case 3
Print "你安下了shift+ctrl键"
Case 4
Print "你安下了alt键"
Case 5
Print "你安下了shift+alt键"
Case 6
Print "你安下了ctrl+alt键"
Case 7
Print "你安下了shift+ctrl+alt键"
End Select
End Sub

呵呵,当shift值超过7时,(可能有其它组合键的情况) , 就会因为你的值没在select范围内,出现检测失误, And 7以后,就能肯定的得出shift .art.ctrl这3个功能键有没有被按下..从而准确的通过select来判断,并print出返回提示..

这个and 7
好像不起作用。但如果改成了+7,代码就失去意思。

你的这个过程名不对。

不是:MouseDown
应为:KeyDown

在这里AND是按位与的意思如1 and 2=0,2 and 3 =2等,你去看一看十进制与二进制转换以及位运算的内容就知道了。

Shift、Ctrl、Alt这三个键的组合会产生1~7,这样按位与7后会屏蔽掉因自定义、信号干扰等产生的其他值,做到万无一失,一般情况下可将其省略。