Option ExplicitPublic Declare Function WindowFromPoint Lib "user32" (ByVal X As Long, ByVal Y As Long) As Long Public Declare Function GetParent Lib "user32" (ByVal hwnd As Long) As Long Public Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As LongPublic Type POINTAPI X As Long Y As Long End TypePublic Type DGfor3 ponX As Long ponY As Long MDC As Long End TypePublic Function MouseDC() As DGfor3 On Error Resume Next Dim Cur As POINTAPI GetCursorPos Cur MouseDC.MDC = WindowFromPoint(Cur.X, Cur.Y) MouseDC.ponX = Cur.X MouseDC.ponY = Cur.Y End Function ================================================== 在TIMER控件中看 MouseDC.ponX MouseDC.ponY 两项,如: if (mousedc.pony <=2) and (mousedc.ponx >300 and mousedc.ponx <600 ) then me.move me.left,me.top,200,200 end if
类模块Option ExplicitType POINTAPI x As Long y As Long End TypeType RECT Left As Long Top As Long Right As Long Bottom As Long End TypeType APPBARDATA cbSize As Long hwnd As Long uCallbackMessage As Long uEdge As Long rc As RECT lParam As Long ' message specific End Type Declare Function SHAppBarMessage Lib "shell32.dll" (ByVal dwMessage As Long, pData As APPBARDATA) As Long Declare Function SetRect Lib "user32" (lpRect As RECT, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As LongPublic Const WM_MOUSEMOVE = &H200 Public Const WM_ACTIVATE = &H6 Public Const WM_WINDOWPOSCHANGED = &H47Public Const ABE_BOTTOM = 3 Public Const ABE_LEFT = 0 Public Const ABE_RIGHT = 2 Public Const ABE_TOP = 1 Public Const ABM_ACTIVATE = &H6 Public Const ABM_GETAUTOHIDEBAR = &H7 Public Const ABM_GETSTATE = &H4 Public Const ABM_GETTASKBARPOS = &H5 Public Const ABM_NEW = &H0 Public Const ABM_QUERYPOS = &H2 Public Const ABM_REMOVE = &H1 Public Const ABM_SETAUTOHIDEBAR = &H8 Public Const ABM_SETPOS = &H3 Public Const ABM_WINDOWPOSCHANGED = &H9 Public Const ABN_FULLSCREENAPP = &H2 Public Const ABN_POSCHANGED = &H1 Public Const ABN_STATECHANGE = &H0 Public Const ABN_WINDOWARRANGE = &H3Public Const SM_CXSCREEN = 0 Public Const SM_CYSCREEN = 1Public Const HWND_TOP = 0 Public Const HWND_TOPMOST = -1Public Const SWP_NOACTIVATE = &H10 Public Const SWP_SHOWWINDOW = &H40
Public Declare Function GetParent Lib "user32" (ByVal hwnd As Long) As Long
Public Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As LongPublic Type POINTAPI
X As Long
Y As Long
End TypePublic Type DGfor3
ponX As Long
ponY As Long
MDC As Long
End TypePublic Function MouseDC() As DGfor3
On Error Resume Next
Dim Cur As POINTAPI
GetCursorPos Cur
MouseDC.MDC = WindowFromPoint(Cur.X, Cur.Y)
MouseDC.ponX = Cur.X
MouseDC.ponY = Cur.Y
End Function
==================================================
在TIMER控件中看
MouseDC.ponX
MouseDC.ponY
两项,如:
if (mousedc.pony <=2) and (mousedc.ponx >300 and mousedc.ponx <600 ) then
me.move me.left,me.top,200,200
end if
x As Long
y As Long
End TypeType RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End TypeType APPBARDATA
cbSize As Long
hwnd As Long
uCallbackMessage As Long
uEdge As Long
rc As RECT
lParam As Long ' message specific
End Type
Declare Function SHAppBarMessage Lib "shell32.dll" (ByVal dwMessage As Long, pData As APPBARDATA) As Long
Declare Function SetRect Lib "user32" (lpRect As RECT, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As LongPublic Const WM_MOUSEMOVE = &H200
Public Const WM_ACTIVATE = &H6
Public Const WM_WINDOWPOSCHANGED = &H47Public Const ABE_BOTTOM = 3
Public Const ABE_LEFT = 0
Public Const ABE_RIGHT = 2
Public Const ABE_TOP = 1
Public Const ABM_ACTIVATE = &H6
Public Const ABM_GETAUTOHIDEBAR = &H7
Public Const ABM_GETSTATE = &H4
Public Const ABM_GETTASKBARPOS = &H5
Public Const ABM_NEW = &H0
Public Const ABM_QUERYPOS = &H2
Public Const ABM_REMOVE = &H1
Public Const ABM_SETAUTOHIDEBAR = &H8
Public Const ABM_SETPOS = &H3
Public Const ABM_WINDOWPOSCHANGED = &H9
Public Const ABN_FULLSCREENAPP = &H2
Public Const ABN_POSCHANGED = &H1
Public Const ABN_STATECHANGE = &H0
Public Const ABN_WINDOWARRANGE = &H3Public Const SM_CXSCREEN = 0
Public Const SM_CYSCREEN = 1Public Const HWND_TOP = 0
Public Const HWND_TOPMOST = -1Public Const SWP_NOACTIVATE = &H10
Public Const SWP_SHOWWINDOW = &H40