If you want to detect when the mouse enters a VB6 control,
you can check via the MouseMove event. But how do you
detect when the mouse exits a control? Visual Basic has no built-in event for
this action, but it’s easy to create your own.
First, put the control on a Frame control that is just
slightly larger than the control on all sides. Set the caption of the Frame
control to a blank string and set its BorderStyle
property to 0-None.
Next, declare a form-level Boolean variable that is True when the mouse is over the control and False if it’s
not. For a button named Command1 this might look like the following (note:
Booleans are False by default):
Dim MouseInCommand1 As Boolean
Now, write a sub that performs the actions that you want to
occur when the mouse leaves the control:
Private Sub Command1_MouseExit()
...
End Sub
In the MouseMove event procedure
for the control, set the Boolean variable to True:
Private Sub Command1_MouseMove(Button As Integer, Shift As Integer, _
X As Single, Y As Single)
MouseInCommand1 = True
End Sub
Finally, in the MouseMove event
procedure for the Frame, check the Boolean variable. If it is True, set it to False and call the procedure that you
defined before:
Private Sub Frame1_MouseMove(Button As Integer, Shift As Integer, X As Single,
_
Y As Single)
If MouseInCommand1 Then
MouseInCommand1 = False
Call Command1_MouseExit
End If
End Sub
Now you’ve created your very own MouseExit
event, which allows you to determine when a mouse exits a control.
Advance your scripting skills to the next level with TechRepublic’s free Visual Basic newsletter, delivered each Friday. Automatically sign up today!