Below you'll find the source for the Visual Basic 6 function MouseAboveObject.
Attribute VB_Name = "modMouseAboveObject"
' This function is downloaded from:
' http://www.stefanthoolen.nl/archive/vb6-functions/
'
' You may freely distribute this file but please leave all comments, including this one, in it.
'
' @Author Stefan Thoolen <mail@stefanthoolen.nl>
Option Explicit
Private Declare Function GetWindowRect Lib "user32" (ByVal hWnd As Long, lpRect As RECT) As Long
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Type POINTAPI
X As Long
Y As Long
End Type
''
' Checks if the mousepointer is above a specific object
' @param long hWnd The handle of the object (Text1.hWnd, Me.hWnd, etc.)
' @return boolean True if the mouse cursor is at the same coords as the object
' @author Stefan Thoolen <mail@stefanthoolen.nl>
Public Function MouseAboveObject(hWnd As Long) As Boolean
Dim p As POINTAPI, r As RECT
GetCursorPos p: GetWindowRect hWnd, r
If p.Y < r.Top Or p.Y > r.Bottom Or p.X < r.Left Or p.X > r.Right Then Exit Function
MouseAboveObject = True
End Function