Registrierung einer Fensterklasse

Eine Window-Klasse definiert die Attribute eines Fensters, z. B. seinen Stil, Symbol, Cursor, Menüs und Fenster-Verfahren. Der erste Schritt bei der Registrierung einer Fensterklasse ist, in einer WNDCLASSEX -Struktur mit der Fenster-Klasseninformationen zu füllen. Weitere Informationen finden Sie unter Elemente der Window-Klasse. Als nächstes übergeben Sie die Struktur an die RegisterClassEx -Funktion. Weitere Informationen finden Sie unter Verwenden von Fensterklassen.

Um eine globale Anwendungsklasse zu registrieren, geben Sie die CS_GLOBALCLASS-Formatvorlage in der Stil -Member der Struktur WNDCLASSEX . Wenn Sie eine lokale Anwendung-Klasse zu registrieren, geben Sie nicht die CS_GLOBALCLASS-Formatvorlage.

Wenn Sie registrieren die Window-Klasse unter Verwendung der ANSI-Version von RegisterClassEx, RegisterClassExA, fordert die Anwendung, dass die Systemparameter Pass Text der Nachrichten an den Fenstern der erstellten-Klasse unter Verwendung der ANSI-Zeichensatz festgelegt; Wenn Sie Registrieren der Klasse mithilfe der Unicode-Version der RegisterClassEx, RegisterClassExW, fordert die Anwendung, dass das System Textparameter der Nachrichten an den Fenstern der erstellten-Klasse unter Verwendung des Unicode-Zeichensatzes übergeben. Die IsWindowUnicode -Funktion ermöglicht Anwendungen die Natur jedes Fensters Abfragen. Weitere Informationen zu ANSI- und Unicode-Funktionen in der Win32-API finden Sie unter Win32 Funktionsprototypen.

Die ausführbare Datei oder DLL, die die Klasse registriert, ist der Eigentümer der Klasse. Das System ermittelt die Klasse Besitz vom hInstance Mitglied der WNDCLASSEX -Struktur an die Funktion RegisterClassEx übergeben, wenn die Klasse registriert ist. Für DLLs sein die hInstance Mitglied muss das Instanzhandle der DLL.

Windows 95: Die Klasse wird zerstört, wenn der Eigentümer schließt oder entladen wird. Aus diesem Grund muss der Prozess zerstören alle Fenster, die die Klasse verwenden, bevor der Eigentümer schließt oder entladen.

Windows NT: Die Klasse wird nicht zerstört, wenn die DLL, die er besitzt entladen wird. Daher, wenn das System die Fensterprozedur für ein Fenster der Klasse aufruft, eine Zugriffsverletzung verursacht da DLL die Fensterprozedur, die nicht mehr im Speicher befindet. Der Prozess muss zerstören alle Fenster, die die Klasse verwenden, bevor die DLL entladen wird und rufen Sie die UnregisterClass -Funktion.

Index