Fensterklassen-Makros
Diese Makros definieren Hilfsprogramme für Fensterklassen.
Name | Beschreibung |
---|---|
DECLARE_WND_CLASS | Ermöglicht es Ihnen, den Namen einer neuen Fensterklasse anzugeben. |
DECLARE_WND_CLASS2 | (Visual Studio 2017) Ermöglicht es Ihnen, den Namen einer neuen Fensterklasse und die eingeschlossene Klasse anzugeben, deren Fensterprozedur die neue Klasse verwendet. |
DECLARE_WND_SUPERCLASS | Ermöglicht es Ihnen, den Namen einer vorhandenen Fensterklasse anzugeben, auf der eine neue Fensterklasse basiert. |
DECLARE_WND_CLASS_EX | Ermöglicht es Ihnen, die Parameter einer Klasse anzugeben. |
Anforderungen
Kopfzeile: atlwin.h
DECLARE_WND_CLASS
Ermöglicht es Ihnen, den Namen einer neuen Fensterklasse anzugeben. Platzieren Sie dieses Makro in der Steuerelementklasse eines ATL-ActiveX-Steuerelements.
DECLARE_WND_CLASS( WndClassName )
Parameter
WndClassName
[in] Der Name der neuen Fensterklasse. Wenn NULL, generiert ATL einen Fensterklassennamen.
Hinweise
Wenn Sie die Option "/permissive-compiler" verwenden, führt DECLARE_WND_CLASS zu einem Compilerfehler; verwenden Sie stattdessen DECLARE_WND_CLASS2.
mit DECLARE_WND_CLASS können Sie den Namen einer neuen Fensterklasse angeben, deren Informationen von CWndClassInfo verwaltet werden. DECLARE_WND_CLASS definiert die neue Fensterklasse, indem die folgende statische Funktion implementiert wird:
static CWndClassInfo& GetWndClassInfo();
DECLARE_WND_CLASS gibt die folgenden Formatvorlagen für das neue Fenster an:
CS_HREDRAW
CS_VREDRAW
CS_DBLCLKS
DECLARE_WND_CLASS gibt auch die Hintergrundfarbe des Standardfensters an. Verwenden Sie das DECLARE_WND_CLASS_EX-Makro , um eigene Formatvorlagen und Hintergrundfarben bereitzustellen.
CWindowImpl verwendet das DECLARE_WND_CLASS Makro, um ein Fenster basierend auf einer neuen Fensterklasse zu erstellen. Um dieses Verhalten außer Kraft zu setzen, verwenden Sie das DECLARE_WND_SUPERCLASS-Makro , oder stellen Sie eine eigene Implementierung der GetWndClassInfo-Funktion bereit.
Weitere Informationen zur Verwendung von Fenstern in ATL finden Sie im Artikel ATL-Fensterklassen.
DECLARE_WND_CLASS2
(Visual Studio 2017) Ähnlich wie DECLARE_WND_CLASS, aber mit einem zusätzlichen Parameter, der beim Kompilieren mit der Option "/permissive-" einen abhängigen Namensfehler vermeidet.
DECLARE_WND_CLASS2( WndClassName, EnclosingClass )
Parameter
WndClassName
[in] Der Name der neuen Fensterklasse. Wenn NULL, generiert ATL einen Fensterklassennamen.
EnclosingClass
[in] Der Name der Fensterklasse, die die neue Fensterklasse einschließt. Lässt keine NULL-Werte zu.
Hinweise
Wenn Sie die Option "/permissive" verwenden, führt DECLARE_WND_CLASS zu einem Kompilierungsfehler, da er einen abhängigen Namen enthält. DECLARE_WND_CLASS2 erfordert, dass Sie die Klasse explizit benennen, in der dieses Makro verwendet wird, und verursacht nicht den Fehler unter dem Flag "/permissive-". Andernfalls ist dieses Makro mit DECLARE_WND_CLASS identisch.
DECLARE_WND_SUPERCLASS
Ermöglicht es Ihnen, die Parameter einer Klasse anzugeben. Platzieren Sie dieses Makro in der Steuerelementklasse eines ATL-ActiveX-Steuerelements.
DECLARE_WND_SUPERCLASS( WndClassName, OrigWndClassName )
Parameter
WndClassName
[in] Der Name der Fensterklasse, die die Superklasse OrigWndClassName darstellt. Wenn NULL, generiert ATL einen Fensterklassennamen.
OrigWndClassName
[in] Der Name einer vorhandenen Fensterklasse.
Hinweise
Mit diesem Makro können Sie den Namen einer Fensterklasse angeben, die eine vorhandene Fensterklasse überklassifizieren soll. CWndClassInfo verwaltet die Informationen der Superklasse.
DECLARE_WND_SUPERCLASS implementiert die folgende statische Funktion:
static CWndClassInfo& GetWndClassInfo();
Standardmäßig verwendet CWindowImpl das DECLARE_WND_CLASS Makro, um ein Fenster basierend auf einer neuen Fensterklasse zu erstellen. Durch Angeben des DECLARE_WND_SUPERCLASS Makros in einer CWindowImpl
abgeleiteten Klasse basiert die Fensterklasse auf einer vorhandenen Klasse, verwendet jedoch Ihre Fensterprozedur. Diese Technik wird als Superklassifizierung bezeichnet.
Neben der Verwendung der DECLARE_WND_CLASS und DECLARE_WND_SUPERCLASS Makros können Sie die GetWndClassInfo-Funktion mit Ihrer eigenen Implementierung überschreiben.
Weitere Informationen zur Verwendung von Fenstern in ATL finden Sie im Artikel ATL-Fensterklassen.
DECLARE_WND_CLASS_EX
Ermöglicht es Ihnen, den Namen einer vorhandenen Fensterklasse anzugeben, auf der eine neue Fensterklasse basiert. Platzieren Sie dieses Makro in der Steuerelementklasse eines ATL-ActiveX-Steuerelements.
DECLARE_WND_CLASS_EX( WndClassName, style, bkgnd )
Parameter
WndClassName
[in] Der Name der neuen Fensterklasse. Wenn NULL, generiert ATL einen Fensterklassennamen.
style
[in] Die Formatvorlage des Fensters.
bkgnd
[in] Die Hintergrundfarbe des Fensters.
Hinweise
Mit diesem Makro können Sie die Klassenparameter einer neuen Fensterklasse angeben, deren Informationen von CWndClassInfo verwaltet werden. DECLARE_WND_CLASS_EX definiert die neue Fensterklasse, indem die folgende statische Funktion implementiert wird:
static CWndClassInfo& GetWndClassInfo();
Wenn Sie die Standardformatvorlagen und Hintergrundfarbe verwenden möchten, verwenden Sie das makro DECLARE_WND_CLASS . Weitere Informationen zur Verwendung von Fenstern in ATL finden Sie im Artikel ATL-Fensterklassen.