2010-05-22 5 views
7

Fondamentalement, j'appelle TrackMouseEvent dans mon WM_CREATE puis je l'appelle à nouveau après un WM_MOUSELEAVE mais cela gèle mon programme. Où devrais-je le coller? MerciTrackMouseEvent ne fonctionne pas

Répondre

13

Vous devez appeler TrackMouseEvent lorsque la souris entre dans votre contrôle, et non quand il quitte votre contrôle. Vous pouvez appeler TrackMouseEvent sur le message WM_MOUSEMOVE. Vous n'avez pas besoin d'appeler TrackMouseEvent à chaque fois que WM_MOUSEMOVE est tiré, juste une fois jusqu'à ce que vous obteniez un autre WM_MOUSELEAVE. Après avoir obtenu un WM_MOUSELEAVE, vous pouvez définir un drapeau afin que le prochain appel à WM_MOUSEMOVE sache à nouveau appeler TrackMouseEvent.

Fondamentalement, vous pouvez émuler un WM_MOUSEENTER fictif en utilisant WM_MOUSEMOVE et en ayant cet ensemble d'indicateurs.

+0

De quel événement s'agit-il? – jmasterx

+0

@ user146780: Voir modifier –