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

C++/CLI Discussion :

Clic de souris


Sujet :

C++/CLI

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 59
    Points : 34
    Points
    34
    Par défaut Clic de souris
    Bonjour,

    J'ai créé un évènement panel1_Click(System::Object^ sender, System::EventArgs^ e) dans un System.Windows.Forms.Panel.
    Je voudrais récupérer la position de la souris (x,y) sur ce control.
    Comme dois-je prosséder ? Avec System::eventargs^ e ?

    Merci

  2. #2
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    oui, en le castant en MouseEventArgs

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 59
    Points : 34
    Points
    34
    Par défaut clic de souris
    Bonjour,

    J'ai trouvé un autre code:

    Point p=panel1->PointToClient(Control::MousePosition);

    Ca marche très bien, mais je pense que s'est plus lent que d'utiliser l'autre méthode.


  4. #4
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    surement, l'événement est fait pour ca, il est judicieux de l'utiliser, tu auras accès également à d'autres infos (type du bouton cliqué, etc ...).

    Mais je me rends compte que j'ai dit une connerie, cela se fait sur l'événement mouseDown

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 59
    Points : 34
    Points
    34
    Par défaut Clic de souris
    Bonjour,

    Merci pour tes réponses, je pense avoir trouvé le bon code pour la souris.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 27
    Points : 13
    Points
    13
    Par défaut Clic souris
    Bonjour,

    Personnellement je reçois comme coordonnées les coordonnées relative à l'écran et non pas relative au forms.

    Que recevez-vous comme coordonnées Ecran ou Forms.

    D'avance merci.

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 59
    Points : 34
    Points
    34
    Par défaut
    Bonjour,

    Je ne sais exactement d'où viens ton problème, mais l'aide est clair:

    on utilise pour les coordonnées absolue (écran) la fonction suivante:
    Point PointToScreen (Point p) où Point p est remplacé par Point(e->X,e->Y) et e est l'évènement MouseEventArgs^ e récupérer

    exemple C++ Visual d'un clic:

    Point startPoint;
    void Form1_MouseDown( Object^ sender, System::Windows::Forms::MouseEventArgs^ e )
    {

    // Set the isDrag variable to true and get the starting point
    // by using the PointToScreen method to convert form
    // coordinates to screen coordinates.
    if ( e->Button == ::MouseButtons::Left )
    {
    isDrag = true;
    }
    Control^ control = dynamic_cast<Control^>(sender);

    // Calculate the startPoint by using the PointToScreen
    // method.
    startPoint = control->PointToScreen( Point(e->X,e->Y) );
    }


  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 27
    Points : 13
    Points
    13
    Par défaut Clic Souris
    Ave helico2,

    Merci de tes commentaires et c'est bien ce que je disais. De cette manière on obtient les coordonnées X et Y de la souris RELATIVE à l'écran et non par rapport à la Form dans la fenêtre du programme.

    Je me fais peut-être mal comprendre alors un petit exemple :
    Par rapport à l'écran la position de la fenêtre est par exemple haut gauche X=115, Y 175 et bas droit X=615, Y=715 (donc la fenêtre a comme dimension 500x600 pixels). Les coordonnées de la souris DANS la fenêtre sont par exemple X=254, Y=378.

    Alors par rapport à l'écran les coordonnées seront : X=369 (254+115), Y=553 (378+175).

    Les coordonnées que vous avez besoin sont peut-être les coordonnées par rapport à l'écran, personnellemnt ce sont celles par rapport à la fenêtre ou par rapport au "PictureBox" que j'aurais besoin et je n'ai pas encore trouvé l'instruction qui me les donnent.

    Si vous connaissez l'instruction, elle m'aiderait grandement.

    Encore merci.

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 59
    Points : 34
    Points
    34
    Par défaut
    Bonjour,
    Voici un test, en espérant que tu trouve ton code. Ci-joints 2 images du test de coordonées souris:
    Images attachées Images attachées   
    Fichiers attachés Fichiers attachés

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 27
    Points : 13
    Points
    13
    Par défaut Clic souris
    Ave Helico2,

    Merci de ta réponse. Je vais l'étudier attentivement et te recontacterai.

Discussions similaires

  1. [Debutant] Menu sur clic de souris
    Par chabannou dans le forum Windows
    Réponses: 8
    Dernier message: 02/04/2005, 01h52
  2. Réponses: 8
    Dernier message: 14/03/2005, 21h43
  3. Emuler et detecter un clic de souris (G, D, mollette)
    Par méphistopheles dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 19/02/2005, 17h25
  4. Réponses: 2
    Dernier message: 12/07/2004, 11h43
  5. Selection par clic de souris
    Par bilbonec dans le forum OpenGL
    Réponses: 7
    Dernier message: 16/04/2004, 00h25

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