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

WinDev Discussion :

Récupérer les coordonnées d'une souris [WD11]


Sujet :

WinDev

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 323
    Points : 128
    Points
    128
    Par défaut Récupérer les coordonnées d'une souris
    Bonjour à tous,

    Je souhaiterai connaitre les coordonnées X et Y de ma souris. Je sais que SourisPosX et SourisPosY existe pour cela MAIS, cette fonction fonctionne seulement lorsqu'on clique gauche.

    Dans mon cas, je souhaiterai connaitre le X et Y de la souris lorsque je clique droit.

    Je vous remercie et excellent début de semaine à tous (à coup de café, et du reste )

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 136
    Points : 241
    Points
    241
    Par défaut
    Je pense que tu te trompes.

    Les fonction SourisPosX et SourisPosY sont disponibles à tout moment.

    Je les utilisais justement lors d'un clique droit sur une table pour sélectionner la ligne en question (voir exemple dans l'aide sur la fonction TableInfoXY).

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 323
    Points : 128
    Points
    128
    Par défaut
    Pourtant lorsque je clique droit, ces deux fonctions me renvoient -1.

    Cas des erreurs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Erreur
    Les principaux cas d'erreur sont les suivants :
     
        * Aucune fenêtre n'est ouverte.
        * Aucun clic de souris n'est effectué.
        * La fonction SourisPosX est appelée dans un code différent du code de clic d'une image.
        * Code de clic d'une image exécuté par la fonction Exécute ou ExécuteTraitement.
    EDIT : J'utilise ces fonctions dans le menu contextuel (clic droit, coller)

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 136
    Points : 241
    Points
    241
    Par défaut
    Si j'ajoute le code qui suit sur l'événement clic droit sur une image (bouton droit enfoncé (WM_RBUTTONDOWN) je n'ai aucun problème.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Trace(SourisPosX(), SourisPosY())
    Biensûr les coordonnées fournies sont relatives à l'image.

    Peut-être que si tu nous donnes le code exécuté ainsi que l'endroit où est appelé celui-ci, on pourra comprendre d'où vient le problème.

  5. #5
    Inactif  
    Profil pro
    Inscrit en
    Février 2003
    Messages
    4 341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 4 341
    Points : 5 953
    Points
    5 953
    Par défaut
    Sinon, tu peux utiliser l'évènement WM_RBUTTONDOWN ou wM_RBUTTONUP et récupérer les positions absolue X et Y au travers de lParam.

  6. #6
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 329
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 329
    Points : 3 841
    Points
    3 841
    Par défaut
    Bonjour,

    Tu utilises le clic-droit :
    - pour faire apparaître ton menu contextuel ?
    - sur ton menu contextuel ?
    - sur quel type de champ ?

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 323
    Points : 128
    Points
    128
    Par défaut
    C'est vrai que mon post manque de précision et je m'en excuse. Voici quelques précisions...

    Je sélectionne une image (que j'ai dessiné). Je clique droit (ca ouvre le menu contextuel), et clique sur l'option copier. Je copie alors l'image (ca fonctionne).

    Maintenant je souhaite coller la même image ailleurs, je re-clic droit(ca ouvre le menu contextuel), puis je choisi l'option coller.
    Dans le code, j'alloue un espace mémoire et mets dans les paramètres du constructeur x et y.

    La encore, le coller fonctionne, a part que x et y valent -1 (du fait de ce que renvoie SourisPosX et SourisPosY.

  8. #8
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 329
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 329
    Points : 3 841
    Points
    3 841
    Par défaut
    ok, ce qui explique le -1 est le fait que au moment où tu utilises SourisPosX(..) et ..Y(..), le focus se trouve sur le menu contextuel.

    Il te faut alors stocker les coordonnées sur le clic-droit de ton image pour les utiliser ensuite dans le code du 'Coller' de ton menu, ou alors procéder différement comme cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    // Variable locale ou globale
    bOptCollerEnCours est booléen = Faux
     
    // Code de l'option Coller
    Info("Valider la position en cliquant gauche sur l'image")
    bOptCollerEnCours = Vrai
     
    // Code Clic-Gauche de ton image
    SI bOptCollerEnCours ALORS maProcCollage() // Ne pas oublier de mettre bOptCollerEnCours = Faux

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 323
    Points : 128
    Points
    128
    Par défaut
    J'ai décidé de mettre deux variable globales SourisX et SourisY dans l'évenement de l'image clique droit enfoncé pour stocker la valeur de la souris, pour ensuite l'utiliser dans mon option.

    Merci pour votre aide à tous !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récupérer les coordonnées de la souris
    Par Captain'Flam dans le forum Général Python
    Réponses: 8
    Dernier message: 16/10/2019, 17h52
  2. graphics -ocaml- comment récupérer les coordonnées de la souris ?
    Par étudiante6 dans le forum Langages fonctionnels
    Réponses: 0
    Dernier message: 20/12/2012, 23h42
  3. Récupérer les coordonnées de la souris
    Par 3aychoucha dans le forum OpenGL
    Réponses: 2
    Dernier message: 06/09/2011, 16h36
  4. Récupérer les coordonnées de la souris dans le ViewModel
    Par pansoul dans le forum Silverlight
    Réponses: 2
    Dernier message: 15/07/2010, 18h55
  5. récupérer les coordonnées de la souris
    Par miKL64 dans le forum GTK+ avec C & C++
    Réponses: 1
    Dernier message: 14/10/2007, 21h43

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