Teilen über


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 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.

Siehe auch

Makros