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++ Discussion :

Positionner le curseur de la souris


Sujet :

C++

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 46
    Points : 44
    Points
    44
    Par défaut Positionner le curseur de la souris
    Bonjour,

    j'utilise Borland C++ Builder 6 avec la VCL.

    J'aimerais, en fonction de la position du curseur à l'intérieur d'un contrôle, positionner ce curseur à un endroit précis.

    Le code sera peut-être plus parlant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    void __fastcall TQuadrillage::GrilleUserMouseMove(TObject *Sender,
          TShiftState Shift, int X, int Y)
    {
     
    if (X>30&&40&&Y>50&&Y<60)
            {
            SetCursorPos(35,55);
            }
    Cependant, il s'avère que les paramètres du SetCursorPos() correspondent à des coordonnées écran et non des coordonnées à l'intérieur du contrôle.

    Je suis presque sûr qu'il faut utiliser les fonctions ScreenToClient ou ClientToScreen mais ni l'aide de Builder ni les forums en ligne ne me permettent de comprendre leur utilisation.

    Quelqu'un peut-il me donner un exemple en utilisant si possible ce contexte ?
    Par avance, merci.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 46
    Points : 44
    Points
    44
    Par défaut
    Etant parvenu à résoudre ce problème, je poste la solution que j'ai trouvée.

    Il s'agissait avant tout de créer la structure TPoint, dans laquelle on stockait la conversion des coordonnées écran en coordonnées client.
    Puis de passer en paramètre de SetCursorPos les deux données de la structure.

    Le code sera plus prolixe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    void __fastcall TQuadrillage::GrilleUserMouseMove(TObject *Sender,
          TShiftState Shift, int X, int Y)
     
    TPoint MonPoint;
     
    if (X>25&&X<35&&Y>25&&Y<35)
            {
            MonPoint=GrilleUser->ClientToScreen(Point(30,30));
            SetCursorPos(MonPoint.x,MonPoint.y);
            }
    Et hop, résolu

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 16/06/2015, 22h50
  2. Positionner le curseur de la souris
    Par Ggamer dans le forum wxPython
    Réponses: 1
    Dernier message: 20/01/2008, 18h38
  3. Réponses: 3
    Dernier message: 20/10/2005, 20h24
  4. RichEdit tjs positionner le curseur en bas du texte
    Par microseb dans le forum C++Builder
    Réponses: 2
    Dernier message: 16/05/2003, 17h48
  5. Comment masquer le curseur de la souris ?
    Par benj63 dans le forum C++Builder
    Réponses: 4
    Dernier message: 26/06/2002, 18h54

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