VB事件的鼠标事件

VB事件的鼠标事件,第1张

鼠标事件是Visual Basic编程中最常用到的事件,多数控件都支持鼠标 *** 作,因此对鼠 标事件进行编程是非常重要的。

鼠标事件主要有以下几种:

Click:单击事件,即单击鼠标时发生的事件。

DblClick:双击事件,即双击鼠标时发生的事件。

MouseDown:鼠标按下时发生的事件。

MouseUp:鼠标抬起时发生的事件。

MouseMove:鼠标移动时发生的事件,对某控件的此事件进行编程,则当鼠标移过此控件时就会触发此事件,执行其相应代码。

鼠标事件的发生顺序是:

(1)首先发生的是MouseMove事件,当鼠标移动时,将会连续触发MoouseMove事件。

(2)当鼠标按下时发生MouseDown事件。

(3)鼠标松开时发生MouseUp事件。

(4)如果按住的是鼠标左键,则Click事件在MouseUp之后发生。

双击鼠标时事件发生顺序是:

(1)当鼠标按下时发生MouseDown事件。

(2)鼠标松开时发生MouseUp事件。

(3)单击鼠标发生Click事件。

(4)双击鼠标发生DblClick事件。

(5)完成鼠标双击时发生MouseUp事件。

在上面所列出的这些事件中,最常用到的就是Click事件和DblClcik事件,MouseMove和 douseUp事件不太经常用,一般用在需要对鼠标进行处理的地方。如:对于最常见的命令按钮,通常情况下我们使用Click事件;而在进行画图的时候, 例如画一条直线,必须先按住鼠标左键,然后拖动鼠标,再松开鼠标。在此过程中,首先触发MouseDown事件,我们可以在此事件中记录鼠标的开始位置, 再对MouseUp事件进行编程,以记录鼠标的结束位置;其中还要对MouseMoove事件进行编程,以在移动过程中进行处理画图 *** 作,而不是 Click或DblClick事件。

鼠标的单击事件定义如下:

Sub Click()

End Sub

双击事件定义如下:

Sub DblClick()

End Sub

对于MouseDown和MouseUp事件,它们的定义要复杂的多。对于MouseUp事件,其定义如下:

Private Sub Labell _MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)

End S

在上面的参数中,Button As Integer定义了参数Button,该参数是用于确定按下的是鼠标的左键,右键,还是中键,其取值如下表所示。

常量数值 说明

VbleftButton1 按下鼠标左键

VbRightButton 2 按下鼠标右键

VbMiddleButton4 按下鼠标中键

Shift As Integer定义整型参数Shift,该参数用于确定键盘上Shift键、Ctrl键、Alt 键是否被按下,其取值如下表所示。 常量 数值 说明 VbShiftMask 1 按下Shift键 VbCtrlMask 2 按下Ctrl键 VbAltMask 4 按下Alt键 要判断是哪个键被按下了,要由相应的程序代码来完成。如:

Private Sub Labell MouseUp(Button AS Integer,Shift As Integer,X aS Sing , Y as Single)

If Button=VbRightButton Then

Msgbox(“你按下去的是鼠标右键”)

End If

End Sub

此段代码在鼠标抬起时执行,程序中用If条件判断语句来判断究竟是哪个键被按

当Button=VbRightButton成立时,即鼠标右键被按下,这时可以执行相应的 *** 作。

Private Sub Labell MouseUp(Button As Integer,Shift As Integer,X as Sin2 Single)

If Shift=2 Then

Msgbox(“单击鼠标时Ctrl键被按下”)

EndIf

End Sub

这段代码在执行过程中判断当鼠标抬起时键盘上哪个键被按了下去。如上表说明,当Shift值为2时,表示Ctrl键被按了下去。

由上面的例子可以看出我们可以对鼠标进行一些判断,然后执行一些特殊 *** 作,但用起来通常比较麻烦。

Public Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)

Public Declare Function SetCursorPos Lib "user32" (ByVal X As Long, ByVal y As Long) As Long

要用这两个API

先和SetCursorPos设置鼠标位置

再用其 mouse_event 模拟鼠标点击

mouse_event MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 0, 0, 0, 0

这个代码,模拟了一次鼠标左键的点击,注意先声明常量及相应的API

Print Tab(6 - i);

这个是定位输出,定位到第6-i列开始输出。随着循环中i 值的增加,这个开始输出的位置就会逐渐减小,向左移动。

For j = 1 To 2 i - 1

这是说这个循环次数,随着i的增长,会逐渐增加,因为循环体中是列印字符,因此,随着i的变化,列出的字符也逐渐增多。

开始列印位置逐渐左移,列印字符渐多,共循环5次,列出5行,形成一个三角形排列字符的图案。

刚开始不要着急 慢慢来 买本好点的入门教程 每天看一点然后做一些例子 慢慢的你就会茅塞顿开的 总是有一个认知的过程的 希望你能早日成功 走进编程的大门 如果你想学vb我还是建议你直接去看vbnet吧 。net框架现在还是微软首推的 其实c#也是不错的选择 你可以选择c#入门经典这本书作为基础建成 入门挺快的 努力一定能成功 别放弃就好

假如有5张相同的 c:\123jpg 分别放在 picture1(0~4) 控件数组中,随机出现的为 c:\321jpg:

dim k as integer '全局变量,老鼠出现的位置

private sub command1_click() '点击按钮随机出现老鼠

picture1(k)picture=loadpicture("c:\123jpg") '恢复上一次老鼠位置的原始

k=int(rnd5) '获取新的0到4的随机数

picture1(k)picture=loadpicture("c:\321jpg") '新位置出现老鼠

end sub

以上就是关于VB事件的鼠标事件全部的内容,包括:VB事件的鼠标事件、VB模拟鼠标、谁能帮我解释下这个vb程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/10219831.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存