JackosKing
Messages postés168Date d'inscriptionmardi 31 décembre 2002StatutMembreDernière intervention21 avril 2005
-
24 août 2003 à 00:38
cs_anthraxx
Messages postés47Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention 9 juin 2004
-
24 août 2003 à 16:46
JackosKing
Messages postés168Date d'inscriptionmardi 31 décembre 2002StatutMembreDernière intervention21 avril 2005 24 août 2003 à 00:48
hue non j'ai deja eu la reponse a cette question dsl:'(
en fait je cherche a detecter quand la sourie sort d'une fenettre comment puis je faire?
JackosKing For EvEr
cs_anthraxx
Messages postés47Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention 9 juin 2004 24 août 2003 à 16:46
Il y a deux possibilités:
- Soit tu captures la souris (il faut que ta fenetre soit au premier plan)
dans ce cas tu utilises la fonction SetCapture(HWND). apres cela, ta fenetre continuera de recevoir les messages de souris meme si le curseur sort de la fenetre, et cela jusqu'a ce que:
* un processus capture la souris ou appelle ReleaseCapture()
* si tu appuies sur un bouton de la souris hors de ta fenetre.
Apres avoir capturé la souris, tu rajoute dans le code de traitement de l'evenement WM_MOUSEMOVE quelques lignes qui analysent les coordonnees de la souris et regardent si celle-ci est dans la fenetre ou pas.
- Soit tu appelles la fonction TrackMouseEvent (cf MSDN). Cette fonction permet a la fenetre de recevoir un evenement WM_NCMOUSELEAVE ou WM_MOUSELEAVE (selon tes besoins), lorsque la souris sort, respectivement, de la fenetre entiere ou de sa partie client. C'est tres pratique, mais un seul evenement sera envoyé. C'est a dire que à chaque evenement WM_MOUSELEAVE il faut que tu appelles de nouveau TrackMouseEvent.
pour les details je te laisse le soin de regarder dans MSDN.