IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Discussion :

Récupérer un click gauche


Sujet :

Windows

  1. #1
    Membre régulier Avatar de Space23
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 185
    Points : 88
    Points
    88
    Par défaut Récupérer un click gauche
    Bonjour j'ai fait une une fonction pour simplement récupérer un clic gauche.
    Simple comme ça mais pas si simple à faire marcher.

    voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     GetMessage(&click,NULL,0,0);
                            if(click.wParam==MK_LBUTTON){
                                origine.x= LOWORD(click.lParam);
                                origine.y= HIWORD(click.lParam);
                                finboucle=1;
                            }
                            printf("x:%d\ty:%d\n",origine.x,origine.y);
    Ca bloque au niveau du GetMessage alors que tenez vous bien ca ne bloque pas en mode debug allez y comprendre quelque chose.
    Bref est-ce que vous savez ce qui ne vas pas? Ou est-ce que j'ai oublier de mettre quelque chose? Ou faut-il reconstruire ça de a à z?

  2. #2
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Bonjour,
    GetMessage va vous retourner le premier message disponible sans que ce soit forcément un click gauche. Il est assez inhabituel d'opérer de cette façon.
    En général, on récupère le message WM_LBUTTONDOWN (ou WM_LBUTTONUP) dans la procédure de la fenêtre adéquate et on effectue le traitement à ce niveau.
    Si vous voulez connaître l'état d'un bouton, à ce moment, il faut plutôt utiliser GetAsyncKeyState avec VK_LBUTTON

  3. #3
    Membre régulier Avatar de Space23
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 185
    Points : 88
    Points
    88
    Par défaut
    Et si je souhaite attendre que l'utilisateur fasse un clic gauche et récupérer les coordonnées de ce clic que me conseillerez-vous?

  4. #4
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Utiliser un état d'attente dans l'IHM jusqu'à l'obtention du WM_LBUTTONDOWN/UP.
    Le pire des cas: faire une boucle de message

  5. #5
    Membre régulier Avatar de Space23
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 185
    Points : 88
    Points
    88
    Par défaut
    Bonjour j'ai compris comment je devais l'implémenter mais comment interpréter le résultat que me renvoie GetAsyncKeyState. le résultat est apparemment sur 2bits.

    Mon code pour récupérer le clic gauche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    do{
        if(GetAsyncKeyState(VK_LBUTTON)== ?? )
        {
               GetCursorPos(&origine); //loge les coordonnées (x,y) de la souris 
               finboucle=1;
         }
         Sleep(400);
    }  while (finboucle==0);

Discussions similaires

  1. Réponses: 4
    Dernier message: 23/07/2007, 14h38
  2. Comment récupérer la coordonnée gauche d'un calque
    Par Nious99 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 06/04/2007, 17h21
  3. Récupérer le Click de ces boutons
    Par Duan dans le forum Delphi
    Réponses: 2
    Dernier message: 05/03/2007, 16h20
  4. simuler le click gauche de la souris
    Par sundjata dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 20/12/2006, 21h55
  5. [C#] Contextmenu Click gauche
    Par mbibim63 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 06/09/2006, 02h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo