Instanz erstellen von Unterklassen

Die Unterklassen einer Anwendung eine Instanz eines Fensters mithilfe der Funktion SetWindowLong . Die Anwendung übergibt die GWL_WNDPROC-Flag, das Handle für das Fenster-Unterklasse und die Adresse der Prozedur Unterklasse SetWindowLong. Die Unterklasse-Prozedur kann in einer Dynamic Link Library (DLL) oder ausführbare Datei der Anwendung befinden.

SetWindowLong gibt die Adresse des ursprünglichen Fensterprozedur des Fensters zurück. Die Anwendung muss die Adresse, Verwendung in nachfolgende Aufrufe der Funktion CallWindowProc abgefangene Nachrichten an die ursprüngliche Fensterprozedur übergeben speichern. Außerdem muss die Anwendung die ursprünglichen Fenster Prozeduradresse die Unterklasse aus dem Fenster zu entfernen. Entfernen Sie die Unterklasse, ruft die Anwendung SetWindowLong wieder, übergeben Sie die Adresse von die ursprüngliche Fensterprozedur, die GWL_WNDPROC-Flag und das Handle für das Fenster.

Das System besitzt das System globaler Klassen und Aspekte der Steuerelemente möglicherweise von einer Version des Systems zur nächsten ändern. Wenn die Anwendung Unterklassen eines Fensters muss, die zu einer globalen System-Klasse gehört, müssen Entwickler die Anwendung aktualisieren, wenn eine neue Version des Systems erscheint.

Da Instanz Unterklassen tritt ein, nachdem ein Fenster erstellt wird, können nicht Sie alle zusätzlichen Bytes zum Fenster hinzufügen. Anwendungen sollten, dass Unterklassen eines Fensters im Fenster Eigenschaftenliste verwenden, zum Speichern von Daten für eine Instanz von Unterklassen Fenster benötigt. Weitere Informationen finden Sie unter Window-Eigenschaften.

Wenn eine Anwendung Unterklassen eine untergeordnete Fenster, es muss die Unterklassen entfernen, in umgekehrter Reihenfolge sie ausgeführt wurden. Wenn der Abholschein nicht umgekehrt ist, kann ein nicht behebbarer Systemfehler auftreten.

Index