vb中MouseMove怎么用?
例如:PrivateSubForm_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)怎样设置参数...
例如:Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
怎样设置参数? 展开
怎样设置参数? 展开
4个回答
2015-08-16 · 知道合伙人软件行家
关注
展开全部
MouseMove事件伴随鼠标指针在对象间移动时连续不断地产生。除非有另一个对象捕获了鼠标,否则,当鼠标位置在对象的边界范围内时该对象就能接收 MouseMove事件。
要测试 button 或 shift 参数,可使用对象浏览器中的 Visual Basic (VB) 对象库中所列出的常数,用来定义该参数中的各个位:
vbLeftButton
左按钮按下。
vbRightButton
右按钮按下。
vbMiddleButton
中间按钮按下。
vbShiftMask
SHIFT 键按下。
vbCtrlMask
CTRL 键按下。
vbAltMask
ALT 键按下。
然后这些常数用作位屏蔽,对于按钮的各种组合,无须计算出各个组合的唯一的位字段值即可进行检测。
要测试某一条件,首先将各个结果赋给一个临时整型变量然后再与一个位屏蔽的 button 或 shift 参数进行比较。测试应当用各个参数进行 And 运算,若结果大于零,则说明该键或按钮被按下。其操作如下:
LeftDown = (Button And vbLeftButton) > 0 CtrlDown = (Shift And vbCtrlMask) > 0
然后,接下去可对结果的各种组合进行检测,其操作如下:
If LeftDown And CtrlDown Then
注意为了对鼠标按钮按下和释放所引起的事件进行处理,可使用 MouseDown 和 MouseUp 事件过程。
MouseMove事件的 button 参数与 MouseDown 和 MouseUp 事件的 button 参数是不同的。对于 MouseMove事件来说,button 参数指示的是所有按钮当前的状态;一个 MouseMove事件可指示某些、全部或没有一个按钮被按下。对于 MouseDown 和 MouseUp 事件来说,button 参数在每个事件精确地指示一个按钮。
在 MouseMove事件中任何时候移动窗口,都能引起层叠事件。当该窗口移动到指针下面时 MouseMove事件将产生。即使是鼠标完全不动 MouseMove事件也能产生。
要测试 button 或 shift 参数,可使用对象浏览器中的 Visual Basic (VB) 对象库中所列出的常数,用来定义该参数中的各个位:
vbLeftButton
左按钮按下。
vbRightButton
右按钮按下。
vbMiddleButton
中间按钮按下。
vbShiftMask
SHIFT 键按下。
vbCtrlMask
CTRL 键按下。
vbAltMask
ALT 键按下。
然后这些常数用作位屏蔽,对于按钮的各种组合,无须计算出各个组合的唯一的位字段值即可进行检测。
要测试某一条件,首先将各个结果赋给一个临时整型变量然后再与一个位屏蔽的 button 或 shift 参数进行比较。测试应当用各个参数进行 And 运算,若结果大于零,则说明该键或按钮被按下。其操作如下:
LeftDown = (Button And vbLeftButton) > 0 CtrlDown = (Shift And vbCtrlMask) > 0
然后,接下去可对结果的各种组合进行检测,其操作如下:
If LeftDown And CtrlDown Then
注意为了对鼠标按钮按下和释放所引起的事件进行处理,可使用 MouseDown 和 MouseUp 事件过程。
MouseMove事件的 button 参数与 MouseDown 和 MouseUp 事件的 button 参数是不同的。对于 MouseMove事件来说,button 参数指示的是所有按钮当前的状态;一个 MouseMove事件可指示某些、全部或没有一个按钮被按下。对于 MouseDown 和 MouseUp 事件来说,button 参数在每个事件精确地指示一个按钮。
在 MouseMove事件中任何时候移动窗口,都能引起层叠事件。当该窗口移动到指针下面时 MouseMove事件将产生。即使是鼠标完全不动 MouseMove事件也能产生。
2013-09-12
展开全部
只要你的鼠标在窗体上有移动的动作 鼠标不是静止的话 该函数会自动调用 并会返回一系列参数 如楼上所说 VB是事件触发类型的 鼠标的移动就是事件 窗体的载入也是一种事件(Form1_Load) 等等
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-09-12
展开全部
主要参数如下:Button 的设置:值 描述 0 按键未被按下。 1 按下左键。 2 按下右键。 3 同时按下左键和右键。 4 按下中键。 5 同时按下左键和中键。 6 同时按下中键和右键。 7 三个按键全都按下。Shift 的设置:值 描述 1 按下 Shift 键。 2 按下 Ctrl 键。 3 同时按下 Shift 和 Ctrl 键。 4 按下 Alt 键。 5 同时按下 Alt 和 Shift 键。 6 同时按下 Alt 和 Ctrl 键。 7 同时按下 Alt、Shift 和 Ctrl 键。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-09-12
展开全部
楼上的都是正解,怎样调用,这样Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
MsgBox "这是鼠标左键按下" ' 移动鼠标的同时单击左键
End If
If Shift = 1 Then
MsgBox "这是按下了shift键" ' 移动鼠标的同时按键盘的shift键
End If
If X < 100 And Y < 100 Then ' 移动鼠标的到窗体的右上角,x轴<100,y轴<100时
MsgBox "鼠标移动到边了"
End If
End Sub
If Button = 1 Then
MsgBox "这是鼠标左键按下" ' 移动鼠标的同时单击左键
End If
If Shift = 1 Then
MsgBox "这是按下了shift键" ' 移动鼠标的同时按键盘的shift键
End If
If X < 100 And Y < 100 Then ' 移动鼠标的到窗体的右上角,x轴<100,y轴<100时
MsgBox "鼠标移动到边了"
End If
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询