Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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 CWindowImplabgeleiteten 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.