2008-11-18 5 views

Répondre

4

0x0118: WM_SYSTIMER (sans papier) utilisé pour caret clignote

Les trois autres devraient être l'application des messages définis (quoi que ce soit dans la gamme 0xC000 à 0xFFFF) de sorte que vous ne trouverez pas ceux qui sont définis nulle part.

1

Un moyen simple serait de simplement capturer la souris. Lorsque vous avez capturé la souris, vous obtenez un événement de clic en dehors de votre fenêtre, puis la capture est désactivée.

Un moyen plus difficile consisterait à définir un crochet de fenêtre de souris de bas niveau. Pour faire un hook global, vous devrez placer votre code hook dans une DLL non managée.

Un vraiment vraiment facile serait de simplement fermer votre formulaire lorsqu'il est désactivé.

EDIT:

Oops. Je viens de réaliser que je n'ai pas répondu à votre question directe sur les identifiants de message. Le message 0x118 n'est pas défini dans winuser.h, donc je suppose qu'il s'agit d'un ID de message non documenté. Les ID de message compris entre 0xC000 et 0xFFFF sont des messages définis par l'application. Ces ID sont renvoyés par RegisterWindowMessage.

+0

Hmmm ... rechercher les événements MouseCaptureChanged et vérifier la position de la souris semble être la meilleure façon de le faire que j'ai vu jusqu'ici. Passez à mon autre question et je vais marquer la vôtre comme la bonne réponse. – Simon

Questions connexes