vb问题 键盘与鼠标事件过程

constalt=4constkey_f2=&H71shiftdown%=(shiftandshift)>0altdown%=(shiftandalt)>0f2_down... 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
这种格式统统看不懂。。。
展开
 我来答
damyzl
2012-09-05 · TA获得超过1586个赞
知道大有可为答主
回答量:1475
采纳率:74%
帮助的人:899万
展开全部
鼠标和键盘事件里面的参数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
则是判断是否按下了右键(不管是否按下左键),计算方法见上。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hejian511
2012-09-05 · TA获得超过845个赞
知道大有可为答主
回答量:1559
采纳率:0%
帮助的人:1473万
展开全部
altdown%=(shift and alt)>0
这种运算先计算左边的表达式再赋值给右边的函数就行了

其实,没必要这么复杂的.vb有自己的常数
键盤事件裏的shift参数
vbShiftMask shift 键
vbAltMask Alt键
vbCtrlMask Ctrl键
鼠标事件裏的button参数
vbLeftButton 左键
vbRightButton 右键
vbMiddleButton 中键
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友ffe7f1a
2012-09-05 · TA获得超过205个赞
知道小有建树答主
回答量:617
采纳率:0%
帮助的人:443万
展开全部
%代表变量为布尔型,看一看基础书就知道了。
if (button and 3)=3
先将变量button的值与 3 进行"与"运算,然后再判断结果是不是3
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式