[MFC] probleme de detection de fenetre
Forum Programmation : [MFC] probleme de detection de fenetre
salut, j'ai cree une tool tip qui s'affiche des que je deplace ma souris, le probleme ,c'est qu'elle reste afficher si je sort ma souris de la fenetre.
quelqu'un pourrait me dire comment je pourrait me dire comment je pourrais la faire disparaitre lorsque ma souris sort de la fenetre.
pour info, ma view est du tip scroll et je travaille sous visualC++ 6.0
s'il vous plait qulqu'un pourrait me repondre
Dans CWnd, tu a la méthode CWnd:
nCaptureChanged(CWnd* pWnd) qui est appelé lorsqu'un élément perd le focus de la souris.
Si tu veux tester pour la fenetre, il te suffit de vérifier que la paramètre est le handle la fenêtre:
Code :
|
Sinon, tu peux aussi utiliser directement le message WM_CAPTURECHANGED (ça revient au même).
ok merci, mais je ne sais pas trop comment on utilise un message.
quelqu'un pourrait me l'expliquer s'il vous plait?
Il te faut le récupérer avec la boucle des message de ta fenêtre, mais tu as une méthode MFC qui fait tout ce qu'il y a à faire.
utilise le OnCaptureChanged() que tu n'as qu'a redéfinir dans ta classe CWnd, c'est bien plus simple !
salut, j'ai regarder mes classe, mais j'ai pas trouver la classe CWnd.J'ai une classe view, app et doc. En plus, je n'est pas la fonction dont tu me parle dans aucune de ces classes. est que tu pourrais me dire comment faire, s'il te plait?
Regarde la déclaration de ta classe view, tu vois que ta classe hérite de CView. Regarde la documentation de CView et tu remarquera que CView hérite de CWnd. Donc au final ta classe view est aussi une classe CWnd. Tu peux donc considérer ta classe view comme CWnd (c'est ta fenêtre graphique).
C'est donc dans cette classe que tu redéfinies toutes les fonctions onQuelqueChose() qui seront appelées au déclenchement d'évènements correspondants.
merci, mais j'ai essayer de mettre une afxmessagebox a l'interieur de la boucle dans la fonction que tu m'a passer pour voir, si ca marche, mais lorsque je fais sortir ma souris de la fenetre, il ne se passe rien.
je sais pas si j'oublie de faire quelque chose,voici le code que je met:
Code :
|
est ce que j'oublie quelque chose? :-(
ouais je me suis planté. Je crois que c'est plutôt pour prendre/relâcher le contrôle de la souris à l'extérieur de la fenêtre.
Essaie plutôt onMouseLeave():
http://www.microsoft.com/msj/1298/c/c1298.aspx
merci pour ton aide
Il y a 839 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.
