Oppure

Loading
22/03/09 8:11
batt
dato un form ove sono stati tracciati più segmenti (line), orizzontali, verticali, obliqui, come rilevare con precisione quando il muose è si fermato su un qualsiasi punto di una linea?
grazie
aaa
22/03/09 8:15
theprogrammer
E come sono state tracciate queste linee?
aaa
22/03/09 9:25
antometal
non ricordo bene...
gli oggetti line, hanno l' evento MouseOver?
aaa
22/03/09 9:55
theprogrammer
No ... l'oggetto line non ha alcun evento.
aaa
23/03/09 17:08
Louis
Ciao batt,
premetto che il seguente codice non è tutta farina del mio sacco; :rofl:
la routine sembra funzionare; per la prova attieniti alle istruzioni riportate:
Option Explicit
'Cattura le coordinate del cursore del mouse:
'GetCursorPos dà la posizione del cursore , rispetto all’angolo superiore
'sinistro dello schermo.
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long

'Se si desidera  conoscere la posizione del mouse, relativamente alla Frm
'in uso si deve convertire i valori con:
Private Declare Function ScreenToClient Lib "user32" (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.

Private Type POINTAPI
    x As Long
    y As Long
End Type

Dim ret As Long
Dim a As POINTAPI
Dim b As Long
Dim c As Long
'-----------------------------------------------------
' Metti una Label ed un Timer sulla Frm
' e per provare disegna una Line sulla Frm:
Private Sub Form_Load()
    
    Timer1.Interval = 1

End Sub
'-----------------------------------------------------
Private Sub Timer1_Timer()
   Call CoordinateMouse
End Sub
'-----------------------------------------------------
Private Sub CoordinateMouse()

'Restituisce la posizione x,y relativamente allo schermo:
    ret = GetCursorPos(a)
'Converte la posizione x,y relativamente al form specificato(.hWnd):
    ScreenToClient Me.hwnd, a
'Le due funzioni, GetCursorPos e ScreenToClient, restituiscono la
'posizione del mouse con valori espressi in pixel. Per convertire i valori in Twip :
    b = a.x * Screen.TwipsPerPixelX
    c = a.y * Screen.TwipsPerPixelY
    
    Label1.Caption = "Valore coordinata X" & Space(1) & b & Space(3) & "Valore coordinata Y" & Space(1) & c

End Sub


Spero che ti sia utile per risolvere il tuo problema.
:k:
aaa
23/03/09 17:34
marco1
Ma... non ho capito bene: vuoi sapere quando il mouse e perfettamente su una di esse?!
Ma... linee ogetti o linee disegnate...:-?:-?:-?:-?
aaa
23/03/09 19:47
Louis
Ma, forse ho letto male il post! In sintesi, avevo inteso che occorresse rilevare le coordinate dei punti che giaciono su una o più linee posizionate o disegnate su una Frm. Eppure ero convinto di ciò; non è che é stata modificata la domanda ? :grr:
aaa
23/03/09 21:13
GrG
quando si modifica un post compare una scritta sotto, come questa:
Ultima modifica effettuata da GrG 23/03/09 21:13
aaa