Tilois
Messages postés721Date d'inscriptiondimanche 10 juin 2001StatutMembreDernière intervention27 mars 20117 4 sept. 2003 à 13:52
Tu utlise l'api GetCursorPos. La tu obtiens la postion sur l'écran de la souris. Après tu fais la position sur l'écran X- la coordonnée Left de ta forme pour obtenir la position en abcsisse. Puis tu fais pareil avec la postion Y- la coordonnée Top de ta form pour obtenir l'ordonée.. Voila
Tetris42
Messages postés53Date d'inscriptionlundi 4 août 2003StatutMembreDernière intervention22 décembre 2003 4 sept. 2003 à 14:24
-------------------------------
Réponse au message :
-------------------------------
> Tu utlise l'api GetCursorPos. La tu obtiens la postion sur l'écran de la souris. Après tu fais la position sur l'écran X- la coordonnée Left de ta forme pour obtenir la position en abcsisse. Puis tu fais pareil avec la postion Y- la coordonnée Top de ta form pour obtenir l'ordonée.. Voila
Je vais passer pour un boulet mais
j ai des erreurs lors de la compil
Private Type RECT
left As Long
top As Long
right As Long
bottom As Long
End Type
Private Type point
X As Long
Y As Long
End Type
Private Declare Sub ClipCursor Lib "user32" (lpRect As Any)
Private Declare Sub GetClientRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT)
Private Declare Sub ClientToScreen Lib "user32" (ByVal hwnd As Long, lpPoint As point)
Private Declare Sub OffsetRect Lib "user32" (lpRect As RECT, ByVal X As Long, ByVal Y As Long)
'Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Sub cmdQuit2_Click()
frmDynamic.Hide
ClipCursor ByVal 0&
End Sub
Private Sub onclick()
GetCursorPos
End Sub
Private Sub cmdStart_Click()
Dim client As RECT
Dim upperleft As point
GetClientRect Me.hwnd, client
upperleft.X = client.left
upperleft.Y = client.top
ClientToScreen Me.hwnd, upperleft
OffsetRect client, upperleft.X, upperleft.Y
ClipCursor client
txtkv100.Text = GetCursorPos(X) ' je veux mettre la coordonee X de ma souris lorske je klike
txtkv100.Text = GetCursorPos(Y) ' je veux mettre la coordonee Y de ma souris lorske je klike
End Sub
Private Sub cmdStop_Click()
'Releases the cursor limits
ClipCursor ByVal 0&
End Sub
Private Sub Form_Click()
Dim pos As POINTAPI
GetCursorPos pos
ScreenToClient Me.hwnd, posMe.Label1 "Position Horizontale X : " & pos.X & vbCrLf & _
"Position Verticale Y = : " & pos.Y
Me.DrawWidth = 2 ' Pixel plus épais
Me.ScaleMode = vbPixels ' Feuille en mode Pixel
Me.PSet (pos.X, pos.Y), RGB(255, 0, 0) ' Affiche le pixel en rouge
Me.DrawWidth = 1 ' Pixel normal
Me.ScaleMode = vbTwips ' Feuille en mode Twip
End Sub
Private Sub form_load()
lblKv40max.Caption = frmVI.txtKv40max.Text
lblKv40max.FontBold = True
lblKv40min.Caption = frmVI.txtKv40min.Text
lblKv40min.FontBold = True
lblKv100min.Caption = frmVI.txtKv100min.Text
lblKv100min.FontBold = True
lblKv100max.Caption = frmVI.txtKv100max.Text
lblKv100max.FontBold = True
End Sub
Tilois
Messages postés721Date d'inscriptiondimanche 10 juin 2001StatutMembreDernière intervention27 mars 20117 4 sept. 2003 à 14:52
Ok voila ton truc corrigé:
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
Private Sub Form_Click()
Dim pos As POINTAPI
GetCursorPos pos
ScreenToClient Me.hWnd, posMe.Label1 "Position Horizontale X : " & pos.X & vbCrLf & _
"Position Verticale Y = : " & pos.Y
Me.DrawWidth = 2 ' Pixel plus épais
Me.ScaleMode = vbPixels ' Feuille en mode Pixel
Me.PSet (pos.X, pos.Y), RGB(255, 0, 0) ' Affiche le pixel en rouge
Me.DrawWidth = 1 ' Pixel normal
Me.ScaleMode = vbTwips ' Feuille en mode Twip
End Sub
Bon le reste j'y ai pas touché (je l'ai juste enlevé pour gagné de la place)
Tiens moi au courant si ca marche
Tetris42
Messages postés53Date d'inscriptionlundi 4 août 2003StatutMembreDernière intervention22 décembre 2003 4 sept. 2003 à 15:26
> Tiens moi au courant si ca marche
Nikel Merci
;)
Maintenant y me reste plus qu a trouver un algo ki me permettrait de definir une echelle pour mon abssice
cad quand je clike sur X il me mette un point a
(110,17)
cs_rene38
Messages postés1858Date d'inscriptionsamedi 29 juin 2002StatutMembreDernière intervention17 octobre 201311 5 sept. 2003 à 01:42
Salut
pourquoi pas :
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Me.DrawWidth = 3
Select Case Button
Case vbLeftButton 'le bouton gauche pour placer un point
PSet (X, Y), vbRed
Case vbRightButton 'le bouton droit pour effacer
PSet (X, Y), Me.BackColor
End Select
End Sub
et tu places un point rouge de taille 3 là où tu as cliqué