Question

J'essaie de créer une fenêtre qui se ferme lorsque vous cliquez en dehors de celui-ci , et pour le moment, je me lance dans la gestion de la fonction WndProc.

Aucun des messages que je reçois jusqu'à présent ne semble utile, mais il y en a quelques uns que je ne comprends pas du tout. Que représentent les codes 0x0118, 0xC123, 0xC128 et 0xC12E?

Était-ce utile?

La solution

0x0118: WM_SYSTIMER (non documenté) utilisé pour le clignotement du curseur

Les trois autres doivent être des messages définis par l'application (tout ce qui va de 0xC000 à 0xFFFF) afin que vous ne trouviez ceux définis nulle part.

Autres conseils

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

Un moyen plus difficile serait de définir un point d'ancrage de souris de bas niveau. Pour effectuer un raccordement global, vous devez placer votre code de raccordement dans une DLL non gérée.

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

MODIFIER :

Oups. Je viens de me rendre compte 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 que c'est un ID de message non documenté. Les ID de message compris entre 0xC000 et 0xFFFF sont des messages définis par l'application. Ces identifiants sont renvoyés par RegisterWindowMessage .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top