I finally came up with a solution to a problem that someone posted, but I can't find them now. He wanted to have a control (an image, I think) change whenever the mouse was over it, then change back when the mouse left it. Here is code that creates a "MouseOver" event for any control on your form.
Paste the following into a standard module:
Usage (Probably best used in a timer):Code:Option Explicit
Type POINTAPI
X As Long
Y As Long
End Type
Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Function GetControlRect(ControlIn As Control, FormIn As Form) As RECT
GetControlRect.Left = (ControlIn.Left + FormIn.Left + 50) / _
Screen.TwipsPerPixelX
GetControlRect.Right = (ControlIn.Left + FormIn.Left + _
ControlIn.Width + 50) / Screen.TwipsPerPixelX
GetControlRect.Top = (ControlIn.Top + FormIn.Top + 325) / _
Screen.TwipsPerPixelY
GetControlRect.Bottom = (ControlIn.Top + FormIn.Top + _
325 + ControlIn.Height) / Screen.TwipsPerPixelY
End Function
Public Function MouseOver(ControlIn As Control, FormIn As Form) As Boolean
Dim CursorPos As POINTAPI
Dim ControlRect As RECT
GetCursorPos CursorPos
ControlRect = GetControlRect(ControlIn, FormIn)
If CursorPos.X > ControlRect.Left And _
CursorPos.X < ControlRect.Right And _
CursorPos.Y > ControlRect.Top And _
CursorPos.Y < ControlRect.Bottom Then
MouseOver = True
Else
MouseOver = False
End If
End Function
If MouseOver(ControlName, FormName) then
'Highlight control here
Else
'Unhighlight control here
End If
Example:
Place a timer, a picturebox, and two labels on a form (make sure the timer's Interval property is set to 10 or less for a quick response time). Then place the following code in the form's code window:
Hope that helps!Code:Option Explicit
Private Sub Timer1_Timer()
If MouseOver(Label1, Me) Then
Label2 = "You're over the label"
ElseIf MouseOver(Picture1, Me) Then
Label2 = "You're over the picture"
Else
Label2 = "You aren't over any controls"
End If
End Sub
~seaweed
Edited by seaweed on 02-23-2000 at 04:56 PM
