您的位置:首页 >> 资源中心 >> 软硬件教学 >> 浏览文章

VB鼠标离开窗体时就执行某个代码如何实现?

时间:2015-01-13 | 栏目:软硬件教学 | 来源:不详 | 编辑:蝌索窝pc354.com | 点击:2765 【点击复制链接】

'如何用VB判断鼠标在不在窗体内?
'给窗体上添加一个timer控件
 
Option Explicit
Private Type POINTAPI
X As Long
Y As Long
End Type
Private MouseXY As POINTAPI
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
 
Private Sub Form_Load()
Timer1.Interval = 200 '每200毫秒执行判断一次鼠标位置
Timer1.Enabled = True
End Sub
 
Private Sub Timer1_Timer()
GetCursorPos MouseXY
MouseXY.X = MouseXY.X * 15
MouseXY.Y = MouseXY.Y * 15
If MouseXY.X > Me.Left And MouseXY.X < Me.Left + Me.Width And MouseXY.Y > Me.Top And MouseXY.Y < Me.Top + Me.Height Then '如果鼠标在窗口内
 '如果鼠标在窗体范围内执行下面的代码
    Me.Caption = "在窗体内"
    Print "在窗体内"
Else
'如果鼠标不在窗体上,则执行下面的代码
    Me.Caption = "在窗体外"
    Print "在窗体外"
End If
End Sub

'++++++++++一点简单的例子++++++++
'这个例子是用来:鼠标移到窗体上后显示窗体下部隐藏的3000高度的内容,鼠标离开后再自动隐藏
Private Sub Timer1_Timer()
GetCursorPos MouseXY
MouseXY.X = MouseXY.X * 15
MouseXY.Y = MouseXY.Y * 15
If MouseXY.X > Me.Left And MouseXY.X < Me.Left + Me.Width And MouseXY.Y > Me.Top And MouseXY.Y < Me.Top + Me.Height Then '如果鼠标在窗口内
 If Form1.Height < 4000 Then '如果窗体高度小于4000
 Form1.Height = Form1.Height + 3000 '高度加3000
   End If
Else
If Form1.Height > 3000 Then ’如果窗体高度大于3000
Form1.Height = Form1.Height - 3000 '高度减3000
    End If
End If
End Sub
'++++++++++例子结束++++++++


-------------另VB判断鼠标是否离开command控件的VB代码---------
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Command1.Caption = X + Y '这句可以不要 ,只是用来调试
Call command1_mouseleave(X - Y) '函数里可以不传变量 相应的你下面的函数体里也可以不用变量
End Sub '如果有多个控件,这段程序要在除了你的那个按钮控件以外的所有控件里出现

Private Sub command1_mouseleave(a As Integer)
Me.Caption = a '在这里添加鼠标离开程序,我这句只是验证是否执行了
End Sub

  • 软硬件教学
  • 资源收集
  • 生活百科