Frage

Ich versuche, ein Fenster, das sich schließt, wenn Sie außerhalb klicken , und im Moment in suche ich tun, dass die WndProc-Funktion durch die Handhabung.

Keine der Nachrichten, die ich bin so weit bekommen scheint nützlich, aber es gibt ein paar, die ich überhaupt nicht verstehen. Was Codes 0x0118, 0xC123, 0xC128 und 0xC12E darstellen?

War es hilfreich?

Lösung

0x0118: WM_SYSTIMER (ohne Papiere) für caret blinkt verwendet

Die anderen drei sollten Anwendung Nachrichtentexte (alles im Bereich 0xC000 0xFFFF) sein, so dass Sie diejenigen, die nicht überall definiert finden.

Andere Tipps

Eine einfache Möglichkeit wäre, nur mit der Maus zu erfassen. Wenn Sie erfasst die Maus erhalten Sie ein Klick-Ereignis vor dem Fenster, dann ausgeschaltet wird, zu erfassen.

Ein schwerer Weg, um einen Low-Level-Maus Fenster Haken zu setzen sei. Um einen globalen Haken zu tun, werden Sie Ihren Hook-Code in einem nicht verwalteten DLL setzen müssen.

A wirklich einfache Möglichkeit, nur wäre das Formular zu schließen, wenn es deaktiviert ist.

Bearbeiten :

Oops. Ich habe erkannt, dass ich nicht Ihre direkte Frage über den Nachrichten-IDs beantworten. Nachricht 0x118 ist nicht in Winuser.h definiert, so dass ich davon ausgehen, es ist eine nicht dokumentierte Nachrichten-ID. Nachrichten-IDs im Bereich 0xC000 0xFFFF sind anwendungsdefinierte Nachrichten. Diese IDs werden zurückgegeben durch RegisterWindowMessage.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top