vb问题 键盘与鼠标事件过程
const alt =4
const key_f2=&H71
shiftdown%=(shift and shift)>0
altdown%=(shift and alt)>0
f2_down%=(keycode=key_f2)
if altdown% and f2_down% then
……
不懂这种表示方法:
altdown%=(shift and alt)>0
f2_down%=(keycode=key_f2)
这不是赋值的语句吗?这么写是什么意思?
if (button and 3)=3 then……
这个表示方法又是什么意思?
补充:(A And B) 运算符 C
这种格式统统看不懂。。。
答案:鼠标和键盘事件里面的参数shift ,button都是状态变量,采用数字某一位表示是/否。注意一下他们的值就可以发现都是2的倍数,这是为了简化位运算(避免多个状态冲突)。
比如:
vbLeftButton =1
vbRightButton =2
实际上这两个数值应该这么看
1 = 00000001
2 = 00000010
那么表示两个键同时按下怎么办呢,用3表示
3 = 00000011
实际上这是上面两个值“或运算”的结果 (1 OR 2),一般情况下也可以看成是加法运算 。“或运算”将逐位计算,两个对应位都为0,则结果为0,否则为1。
而当button=3时,下面的结果都不为0:
button AND vbLeftButton
button And vbRightButton
因此可用来判断button这个参数是否包含1(鼠标左键按下)或者2(鼠标右键按下)。
altdown%=(shift and alt)>0
赋值号”=” 表示这是个赋值语句,如果赋值号右边是个表达式,先计算出表达式的值再赋值。(shift and alt)>0 结果是逻辑值(True 或者 False),% 表示Integer,所以计算结果将强制转换为整数(True=-1,False=0)。
这里自己定义了常数alt,实际上可以直接用VB的常数:
vbShiftMask =1 shift 键
vbCtrlMask = 2 Ctrl键
vbAltMask =4 Alt键
if (button and 3)=3 then……
判断是否按下了两个键,如果是:
if (button and 2)>0 then……‘也可以写成if (button and 2) = 2 then
则是判断是否按下了右键(不管是否按下左键),计算方法见上。
其他:%代表变量为布尔型,看一看基础书就知道了。
if (button and 3)=3
先将变量button的值与 3 进行"与"运算,然后再判断结果是不是3
上一个:求计算机二级vb上级内容
下一个:谁知道 每次 打开和关闭 excel 的时候提示 VB 自动化错误 怎么处理?