Flux rss
Collection CommentCaMarche.net
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Résolu

VB6 - Récupérer les valeurs de la souris

Fenril'Skanenruf, le mercredi 2 juillet 2008 à 15:03:39
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 :

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.
Configuration: Windows XP
Internet Explorer 6.0
Répondre à Fenril'Skanenruf  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Fenril'Skanenruf, le jeudi 3 juillet 2008 à 22:05:35
UP SVP.
Répondre à Fenril'Skanenruf

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
amigo, le jeudi 3 juillet 2008 à 23:49:35
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+.
Répondre à amigo

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Fenril'Skanenruf, le vendredi 4 juillet 2008 à 10:33:42
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 !
Répondre à Fenril'Skanenruf

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
lermite222, le vendredi 4 juillet 2008 à 10:53:31
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+ L'expérience instruit plus sûrement que le conseil. (André G­ide)  
Répondre à lermite222

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
amigo, le vendredi 4 juillet 2008 à 11:35:35
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.

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
Répondre à amigo

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
lermite222, le vendredi 4 juillet 2008 à 13:15:21
Petit exercice.. dessine sur la forme ou tout autre objet qui possède un hdc.
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. L'expérience instruit plus sûrement que le conseil. (André Gide)  
Répondre à lermite222

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 Fenril'Skanenruf, le vendredi 4 juillet 2008 à 13:44:22
Merci beaucoup de votre aide, mon problème est résolu.
Grâce à vous j'ai réussi à faire le système de lignes automatiques déjà tracées.
Et j'ai découvert l'utilité des évenements MouseDown, MouseUp et MouseMouve.

Merci.
Répondre à Fenril'Skanenruf

Résultats pour VB6 Récupérer les valeurs de la souris

[JS]récupérer valeur d'un input radio? (Résolu) Salut à tous, j'ai un problème, je n'arrive pas à récupérer la valeur de mes inputs radio grace à javascript. Aucun pb pour les input text, textarea et select. Je n'ai pas testé les checkbox. voilà le code html: www.commentcamarche.net/forum/affich-5914956-js-recuperer-valeur-d-un-input-radio
Recuperer valeur d'un bouton radio avec lien (Résolu) Salut, Sur ma page j'ai un tableau avec des boutons radio. Je voudrai savoir comment recuperer la valeur du bouton selectionné en sachant que je ne fais pas de formulaire car la valeur doit etre recupérée quand je clique sur un lien de mon menu.... www.commentcamarche.net/forum/affich-2886163-recuperer-valeur-d-un-bouton-radio-avec-lien
Récupérer valeur checkbox (Résolu) Bonjour, je n'arrive pas à récupérer la valeur d'une checkbox je veux que si elle est coché, je récupère la valeur oui, sinon la valeur non ma checkbox : Tickets restaurant là ou je veux la... www.commentcamarche.net/forum/affich-6630926-recuperer-valeur-checkbox

Résultats pour VB6 Récupérer les valeurs de la souris

Que fait un fork() ?...ou le petit fork() illustré.... Introduction Lancement du père Le fork Maîtriser le fil d'exécution du père et celui du fils Les variables et les descripteurs de fichiers La synchronisation La fin Notes et... www.commentcamarche.net/faq/sujet-10611-que-fait-un-fork

Résultats pour VB6 Récupérer les valeurs de la souris

[PHP/MySQL] Récupérer valeur MAX (Résolu)Bonjour, J'aimerai retrouver la valeur MAX des ID d'une base de données pour ensuite faire un calcul. Voilà mon code : $query = "SELECT MAX(lien_id) FROM liens GROUP BY lien_id "; $result = mysql_query ($query) or die ("Exécution de la... www.commentcamarche.net/forum/affich-1691973-php-mysql-recuperer-valeur-max
[Python] Recupérer valeur checkbutton (Résolu)Bonjour Ca faisait bien une semaine que je n'avais posé de questions, mais là j'y arrive pas.... Voilà mon code i = 0 for t in self.param_inputs: value = Tkinter.IntVar(); checkbox = Tkinter.Checkbutton(group_input.interior(), text = t,... www.commentcamarche.net/forum/affich-2207644-python-recuperer-valeur-checkbutton
Recuperer valeur case a coché avec odbc (Résolu)Bonjour, Je cherche désespérément une solution à mon problème : J’ai créé un formulaire php, celui-ci contient une liste de « site » relié à une table Access, selon le site sélectionné, il apparait un tableau « équipement » avec des cases à cocher.... www.commentcamarche.net/forum/affich-7541393-recuperer-valeur-case-a-coche-avec-odbc

Résultats pour VB6 Récupérer les valeurs de la souris

PHP - Les cookies et les en-têtes HTTPLes en-têtes HTTP Lors de chaque échange par le protocole HTTP entre votre navigateur et le serveur, des données dîtes d'en-têtes contenant des informations sur les données à envoyer (dans le cas d'une requête) ou envoyées (dans le cas d'une... www.commentcamarche.net/contents/php/phpcookie.php3