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 :D ???
Version imprimable
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 :D ???
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.
Y a pas de message de type mouse out :x :evil: :twisted: :roll: :wink:
les message WM_MOUSEMOVE ne parviennent plus a ma wnd kand la souris depasse le rectangle de celle-ci ..... :oops: qcq a une autre idée
ça y est je l'ai trouvée dans la doc :
ça vous va cher ami ??
Si utilisation MFC avec ClassWizard :Citation:
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.
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
ca ne marche pas non plus :cry:
Impossible !!!Citation:
ca ne marche pas non plus
etenclin a déjà donné une possibilité :
Obtenir la zone cliente et tester si la souris (coordonnées )est dedans
Quel type d'appli : avec vues splitter , MDI ?Citation:
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!!!!
Dans l'événement WM_MOUSEMOVE tester si on est dans la zone cliente et sinon faire le traitement
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!!!!!!!!!!!!!!!!
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
ca marche merci bcp