VB6 - Récupérer les valeurs de la souris
Résolu
Fenril'Skanenruf
-
Fenril'Skanenruf -
Fenril'Skanenruf -
Bonjour,
Je sollicite votre aide, je cherche à faire un petit programme simple qui permet au click de récupérer dans une form les valeurs X et Y (en twins, ScaldeMode est réglé) du click, de les stocker dans deux variables : vardepX et vardepY
Une fois cela fait, au second click, fait pareil dans les variables : vararrX et vararrY. Puis au deuxième click tracer une ligne allant de (vardepX, vardepY) à (vararrX, vararrY). Voici mon code actuel :
J'arrive pas à récupérer les valeurs. La fonction GetMousePosition() que j'ai trouvé sur le net en même temps que le Point API n'indique q'une sortie. Je veux dire avec elle je ne comprend pas trop comment en sortir séparement les X et les Y. Pouvez-vous s'il vous plaît me débugger la partie qui gère les 4 variables (vardepx, vardepy, vararrx et vararry).
Je n'arrive pas à leur attribuer les valeur X et Y du click.
Merci beaucoup d'avance.
Je sollicite votre aide, je cherche à faire un petit programme simple qui permet au click de récupérer dans une form les valeurs X et Y (en twins, ScaldeMode est réglé) du click, de les stocker dans deux variables : vardepX et vardepY
Une fois cela fait, au second click, fait pareil dans les variables : vararrX et vararrY. Puis au deuxième click tracer une ligne allant de (vardepX, vardepY) à (vararrX, vararrY). Voici mon code actuel :
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 Type POINTAPI X As Long Y As Long End Type Private Sub Form_Click() If clicking = 0 Then vardepx = Me.GetMousePosition.pos.X vardepy = Me.GetMousePosition.pos.Y clicking = 1 Exit Sub End If vararrx = Me.GetMousePosition.pos.X vararry = Me.GetMousePosition.pos.Y Form1.Line (vardepx, vardepy)-(vararrx, wararry), 8 End Sub Private Function GetMousePosition() As POINTAPI Dim pos As POINTAPI GetCursorPos pos ScreenToClient Me.hwnd, pos pos.X = Screen.TwipsPerPixelX * pos.X pos.Y = Screen.TwipsPerPixelY * pos.Y GetMousePosition = pos End Function Private Sub Form_Load() clicking = 0 End Sub
J'arrive pas à récupérer les valeurs. La fonction GetMousePosition() que j'ai trouvé sur le net en même temps que le Point API n'indique q'une sortie. Je veux dire avec elle je ne comprend pas trop comment en sortir séparement les X et les Y. Pouvez-vous s'il vous plaît me débugger la partie qui gère les 4 variables (vardepx, vardepy, vararrx et vararry).
Je n'arrive pas à leur attribuer les valeur X et Y du click.
Merci beaucoup d'avance.
A voir également:
- VB6 - Récupérer les valeurs de la souris
- Comment récupérer les messages supprimés sur whatsapp - Guide
- Vb6 - Télécharger - Divers Utilitaires
- Quelle touche pour débloquer la souris ? - Guide
- Impossible de récupérer mon compte gmail - Guide
- Récupérer mon compte facebook désactivé - Guide
7 réponses
Bonjour,
Pour récupérer la position de la souris dans une Form, moi j'utilise les évènements Form_MouseDown, Form_MouseUp et Form_MouseMove.
Pour tracer une ligne, il y la méthode Line.
A+.
Pour récupérer la position de la souris dans une Form, moi j'utilise les évènements Form_MouseDown, Form_MouseUp et Form_MouseMove.
Pour tracer une ligne, il y la méthode Line.
A+.
Bonjour Amigo,
Dans l'idée j'ai rien contre mais avec ces évenements comme récupérer les valeurs x et y de la souris ?
Où je l'ai trouve, en fait je veux faire un programme qui au premier clic récupère les valeurs de la souris et les stocke dans 2 variables et ensuite lors du second clic stock dans deux autres variables et avec ces quatre variables (départ de X et Y et fin de X et Y) tracer une ligne.
Comment faire s'i lte plaît ? Peux-tu me montrer le code stp ?
Merci beaucoup !
Dans l'idée j'ai rien contre mais avec ces évenements comme récupérer les valeurs x et y de la souris ?
Où je l'ai trouve, en fait je veux faire un programme qui au premier clic récupère les valeurs de la souris et les stocke dans 2 variables et ensuite lors du second clic stock dans deux autres variables et avec ces quatre variables (départ de X et Y et fin de X et Y) tracer une ligne.
Comment faire s'i lte plaît ? Peux-tu me montrer le code stp ?
Merci beaucoup !
Bonjour,
1ère chose a faire, déclarer tes variables au desssus du module
Dim vardepx as integer
Dim vardepy as integer
Dim clicking as integer
Et ta fonction va... Fonctionner.
Sauf que tu doit remettre clicking à 0 au 2ém passage.
Mais amigo a raison, il faut employer les événements souris de la feuille, là tu à directement le X et le Y par rapport à ta forme.
A+
1ère chose a faire, déclarer tes variables au desssus du module
Dim vardepx as integer
Dim vardepy as integer
Dim clicking as integer
Et ta fonction va... Fonctionner.
Sauf que tu doit remettre clicking à 0 au 2ém passage.
Mais amigo a raison, il faut employer les événements souris de la feuille, là tu à directement le X et le Y par rapport à ta forme.
A+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
Exemple de dessin de lignes sur une Form
Ouvre un nouveau projet et place un controle Line (Line1) sur la Form (Form1)
Colle ce code dans le code de la Form et execute
Appuyer sur le bouton1 de la souris et garder appuyé, déplacer la souris et relacher le bouton.
Exemple de dessin de lignes sur une Form
Ouvre un nouveau projet et place un controle Line (Line1) sur la Form (Form1)
Colle ce code dans le code de la Form et execute
Appuyer sur le bouton1 de la souris et garder appuyé, déplacer la souris et relacher le bouton.
Option Explicit Dim x1, x2, y1, y2 Dim Btn As Boolean Private Sub Form_Load() Me.Line1.Visible = False Me.AutoRedraw = True Me.DrawWidth = 3 End Sub Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) x1 = X: y1 = Y: Btn = True End Sub Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) x2 = X: y2 = Y If Btn Then With Me.Line1 .x1 = x1 .y1 = y1 .x2 = x2 .y2 = y2 .Visible = True End With End If End Sub Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) x2 = X: y2 = Y: Btn = False Me.Line1.Visible = False Me.Line (x1, y1)-(x2, y2) End Sub
Petit exercice.. dessine sur la forme ou tout autre objet qui possède un hdc.
Nouveau Projet et coller le code dans le module de la forme.
Tant que le bouton de la souris est enfoncé, la ligne suit le curseur.
Option Explicit Const PS_SOLID = 0 Private Type POINTAPI X As Long Y As Long End Type Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long Private Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long Private Declare Function CreatePen Lib "gdi32" (ByVal nPenStyle As Long, ByVal nWidth As Long, ByVal crColor As Long) As Long Private Declare Function LineTo Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long) As Long Private Declare Function MoveToEx Lib "gdi32" (ByVal hdc As Long, _ ByVal X As Long, ByVal Y As Long, lpPoint As Any) As Long Const Epp = 10 Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) DeleteObject SelectObject(Me.hdc, CreatePen(PS_SOLID, Epp, RGB(0, 255, 0))) MoveToEx Me.hdc, X, Y, &H0 End Sub 'Mettre ce code dans Form_MouseUp pour une ligne droite Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button <> 1 Then Exit Sub DeleteObject SelectObject(Me.hdc, CreatePen(PS_SOLID, Epp, RGB(0, 255, 0))) LineTo Me.hdc, X, Y Me.Refresh End Sub
Nouveau Projet et coller le code dans le module de la forme.
Tant que le bouton de la souris est enfoncé, la ligne suit le curseur.