Ecco qua una breve guida su come ricavare la x e la y del mouse:
codice:
Determinare la posizione del mouse
--------------------------------------
Declare Function GetCursorPos Lib "user32" Alias "GetCursorPos" (lpPoint As POINTAPI) As Long
Con la variabile del tipo POINTAPI:
Type POINTAPI
x As Long
y As Long
End Type
La funzione GetCursorPos restituisce in una variabile di tipo definito dall’utente denominata POINTAPI le coordinate x,y relative all’angolo superiore a sinistra dello schermo.
Esempio
Sub PosizioneScreenMouse()
Dim Posizione As POINTAPI
Dim PuntoX As Integer
Dim PuntoY As Integer
GetCursorPos Posizione
'per ricavare la posizione x e y
PuntoX = Posizione.x'coordinata del punto x
PuntoY = Posizione.y'coordinata del punto y
End Sub
GetCursorPos da la posizione del cursore , rispetto all’angolo superiore sinistro dello schermo. Se si desidera conoscere la posizione del mouse, relativamente al form in uso si deve convertire i valori con:
Declare Function ScreenToClient Lib "user32" Alias "ScreenToClient" (ByVal hwnd As Long, lpPoint As POINTAPI) As Long
La funzione ScreenToClient converte le coordinate x,y, ricavate con la funzione GetCursorPos, nelle coordinate relative all’angolo superiore sinistro di un form specificato.
Esempio
Sub PosizioneWindowMouse()
Dim Posizione As POINTAPI
Dim PuntoX As Integer
Dim PuntoY As Integer
GetCursorPos Posizione'restituisce la posizione x,y relativamente allo schermo
ScreenToClient Me.hWnd, Posizione 'converte la posizione x,y relativamente al form specificata (.hWnd)
'per ricavare la posizione x e y
PuntoX = Posizione.x'coordinata del punto x relativa al form corrente
PuntoY = Posizione.y'coordinata del punto y relativa al form corrente
End Sub
le due funzioni, GetCursorPos e ScreenToClient, restituiscono la posizione del mouse con valori espressi in pixel. Per convertire i valori in Twip :
PuntoX = Posizione.x * Screen.TwipsPerPixelX’
PuntoY = Posizione.y * Screen.TwipsPerPixelY
:metallica :sexpulp: