Unterklassen Kombinationsfelder

Das Erstellen von Unterklassen ist ein Verfahren, das ermöglicht einer Anwendung abfangen und verarbeiten Nachrichten gesendet oder an ein Fenster gesendet. Mithilfe von Unterklassen kann eine Anwendung eine eigene Verarbeitung für bestimmte Nachrichten, wobei die meisten Message-Verarbeitung an die Klasse definiert Fensterprozedur ersetzen.

Wenn das Betriebssystem ein Fenster erstellt, speichert sie Informationen in eine interne Datenstruktur, die die Adresse von der Windows-Prozedur enthält. So bilden Sie Unterklassen eines Fensters Ruft eine Anwendung die Funktion SetClassLong die Adresse dieses Verfahrens durch die Adresse der Instanz über eine anwendungsdefinierte Unterklasse-Prozedur zu ersetzen. Danach werden alle Nachrichten in das Fenster für die Unterklasse-Prozedur gesendet. Diese Prozedur verwendet dann die CallWindowProc -Funktion nicht verarbeitete Nachrichten an die ursprüngliche Fensterprozedur übergeben. Eine Beschreibung der Nachrichtenverarbeitung, die von der COMBOBOX-Klasse Fensterprozedur durchgeführt finden Sie unter Standard-Combo Box Verhalten.

Wenn das Kombinationsfeld außerhalb eines Dialogfelds ist, kann keine Anwendung verarbeiten die Registerkarte, geben Sie und Schlüssel zu entkommen, es sei denn es eine Unterklasse-Prozedur verwendet wird. Wenn eine einfache oder Dropdown-Kombinationsfeld den Eingabefokus erhält, setzt es sofort den Fokus auf seine Kind-Edit-Steuerelement. Daher muss eine Anwendung Unterklasse das Edit-Steuerelement zum Abfangen von Tastatureingaben für ein einfaches oder Dropdown-Kombinationsfeld. Ein Beispiel hierzu finden Sie unter bilden von Unterklassen für ein Kombinationsfeld.

Wenn eine Unterklasse-Prozedur verarbeitet die WM_PAINT -Meldung, es muss verwenden den BeginPaint Funktion zur Vorbereitung der Malerei. Vor dem Aufruf der EndPaint Funktion, übergibt er das Handle Gerätekontext (DC) als wParam -Parameter für die Fensterprozedur. Wenn EndPaint zuerst aufgerufen wird, führt die Fensterprozedur Klasse keine Malerei da EndPaint das gesamte Fenster überprüft.

Eine Technik, mit Bezug auf das Erstellen von Unterklassen ist Fensterprozedur. Eine übergeordnete Klasse ähnelt eine anderen Klasse, außer dass die Fensterprozedur DefWindowProc zu nicht verarbeitete Nachrichten nicht aufgerufen wird. Stattdessen übergibt er nicht verarbeitete Nachrichten an die Fensterprozedur für das übergeordnete Fenster-Klasse. Folgen Sie den Anweisungen im Fenster Verfahren zur Vermeidung von Problemen, die auftreten können mit Unterklassen und Erstellen von übergeordneten Klassen.

Index