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()
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
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
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!