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

MFC Discussion :

Comment savoir si la souris a quitter le rectangle de ma wnd [FAQ]


Sujet :

MFC

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2002
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 39
    Points : 40
    Points
    40
    Par défaut Comment savoir si la souris a quitter le rectangle de ma wnd
    salut tt le monde,
    je voudrais faire un traitement quand la souris quitte une view de mon app mais je n'arrive pas a savoir quand cet événement se passe!!!!
    ect ce qu'il existe un message genre MouseOut ???

  2. #2
    Futur Membre du Club
    Inscrit en
    Juillet 2002
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Juillet 2002
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    A la barbare, sur l'événement OnMouseMouve tu récupère les coordonnées du pointeur et tu regardes si il est toujours à l'intérieur de ta fenêtre.

  3. #3
    Membre à l'essai
    Inscrit en
    Octobre 2002
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 14
    Points : 18
    Points
    18
    Par défaut
    Y a pas de message de type mouse out

  4. #4
    Membre du Club
    Inscrit en
    Octobre 2002
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 39
    Points : 40
    Points
    40
    Par défaut
    les message WM_MOUSEMOVE ne parviennent plus a ma wnd kand la souris depasse le rectangle de celle-ci ..... qcq a une autre idée

  5. #5
    mat.M
    Invité(e)
    Par défaut
    ça y est je l'ai trouvée dans la doc :
    ça vous va cher ami ??



    WM_NCMOUSEMOVE
    The WM_NCMOUSEMOVE message is posted to a window when the cursor is moved within the nonclient area of the window. This message is posted to the window that contains the cursor. If a window has captured the mouse, this message is not posted.
    Si utilisation MFC avec ClassWizard :

    CWnd::OnNcMouseMove
    afx_msg void OnNcMouseMove( UINT nHitTest, CPoint point );


    Sinon on peut aussi procéder de la sorte:
    Obtenir la zone cliente avec GetClientRect
    et regarder si le pointeur de souris y est avec PtInRect

  6. #6
    Membre du Club
    Inscrit en
    Octobre 2002
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 39
    Points : 40
    Points
    40
    Par défaut
    ca ne marche pas non plus

  7. #7
    mat.M
    Invité(e)
    Par défaut
    ca ne marche pas non plus
    Impossible !!!
    etenclin a déjà donné une possibilité :
    Obtenir la zone cliente et tester si la souris (coordonnées )est dedans

    je voudrais faire un traitement quand la souris quitte une view de mon app mais je n'arrive pas a savoir quand cet événement se passe!!!!
    Quel type d'appli : avec vues splitter , MDI ?
    Dans l'événement WM_MOUSEMOVE tester si on est dans la zone cliente et sinon faire le traitement

  8. #8
    Membre du Club
    Inscrit en
    Octobre 2002
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 39
    Points : 40
    Points
    40
    Par défaut
    a mes modestes connaissances les messages WM_MOUSEMOVE ne parviennent a une fenetre ke si le pointeur est ds le rectangle de cette meme fenetre!!!!!!!!!!!!!!!!

  9. #9
    Membre régulier

    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 68
    Points : 93
    Points
    93
    Par défaut
    Bonjour,

    Lorsque la fenetre recois son premier message WM_MOUSEMOVE,
    il faut faire appel a la fonction SetCapture() alors a ce moment,
    la fenetre recevra tous les message meme ceux en dehors
    il faut alors voir si le curseur de la souris est a l'intérieur ou
    a l'exterieur de la fenetre. Lors qu'il est a l'exterieur, faites le traitement
    puis ReleaseCapture().

    Salut

  10. #10
    Membre du Club
    Inscrit en
    Octobre 2002
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 39
    Points : 40
    Points
    40
    Par défaut
    ca marche merci bcp

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 01/04/2008, 08h33
  2. Réponses: 6
    Dernier message: 01/07/2007, 18h15
  3. Comment savoir si la souris ne bouge plus ?
    Par seb-oulba dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 04/08/2006, 12h44
  4. Comment savoir si la souris est sur un TChart ?
    Par marsupilami34 dans le forum Composants VCL
    Réponses: 1
    Dernier message: 30/09/2005, 23h16
  5. Réponses: 4
    Dernier message: 10/09/2002, 17h09

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