2010-03-03 11 views
0

Dans Cocoa Framework de Mac OS X, il existe des suivis de suivi, qui vous permettent d'enregistrer une zone de votre vue et d'obtenir des messages de rappel lorsque la souris entre ou sort.Quel est le moyen le plus efficace de suivre la position du curseur de la souris sur Windows?

Existe-t-il une API similaire dans Windows? Je voudrais éviter d'utiliser une minuterie pour appeler GetCursorPos() tous les x intervalles.

Il se pourrait qu'ils soient nommés quelque chose de totalement différent et c'est assez trivial, mais je n'ai rien trouvé jusqu'à présent.

Répondre

2

TrackMouseEvent, cela vous enverra un message WM_MOUSELEAVE lorsque la souris quitte votre fenêtre, ainsi que des notifications si la souris ne bouge pas pendant un certain temps.

Si vous voulez un rectangle de suivi plus petit que votre fenêtre, vous devez le faire vous-même.

1

Catch WM_MOUSEMOVE dans votre fenêtre.

+0

Ce message ne s'affiche que si je n'ai pas placé ma souris sur un contrôle enfant comme un bouton. – Drarok

+0

@Drarok: Vous pourriez attraper le message dans votre boucle de message et ne pas envoyer le message. Ici vous pouvez convertir la coordinte ou simplement appeler GetCursorPos(). De cette façon, vous n'aurez pas besoin de sous-classer toutes vos fenêtres. –

1

Vous pouvez installer un pointeur de souris pour capturer les événements de la souris.