Private Type POINTAPI
X As Long Y As Long End Type Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long Private Declare Function ScreenToClient Lib "user32" (ByVal hWnd As Long, _ lpPoint As POINTAPI) As Long ' Get mouse X coordinates in pixels ' ' If a window handle is passed, the result is relative to the client area ' of that window, otherwise the result is relative to the screen Function MouseX(Optional ByVal hWnd As Long) As Long Dim lpPoint As POINTAPI GetCursorPos lpPoint If hWnd Then ScreenToClient hWnd, lpPoint MouseX = lpPoint.X End Function ' Get mouse Y coordinates in pixels ' ' If a window handle is passed, the result is relative to the client area ' of that window, otherwise the result is relative to the screen Function MouseY(Optional ByVal hWnd As Long) As Long Dim lpPoint As POINTAPI GetCursorPos lpPoint If hWnd Then ScreenToClient hWnd, lpPoint MouseY = lpPoint.Y End Function |