Udostępnij za pośrednictwem


Makra klasy okna

Te makra definiują narzędzia klasy okien.

Nazwa/nazwisko opis
DECLARE_WND_CLASS Umożliwia określenie nazwy nowej klasy okna.
DECLARE_WND_CLASS2 (Visual Studio 2017) Umożliwia określenie nazwy nowej klasy okna i otaczającej klasy, której procedura okna będzie używana przez nową klasę.
DECLARE_WND_SUPERCLASS Umożliwia określenie nazwy istniejącej klasy okna, na której będzie oparta nowa klasa okien.
DECLARE_WND_CLASS_EX Umożliwia określenie parametrów klasy.

Wymagania

Nagłówek: atlwin.h

DECLARE_WND_CLASS

Umożliwia określenie nazwy nowej klasy okna. Umieść to makro w klasie kontrolki ActiveX ATL.

DECLARE_WND_CLASS( WndClassName )

Parametry

WndClassName
[in] Nazwa nowej klasy okna. Jeśli wartość NULL, usługa ATL wygeneruje nazwę klasy okna.

Uwagi

Jeśli używasz opcji /permissive- kompilatora, DECLARE_WND_CLASS spowoduje błąd kompilatora; Zamiast tego użyj DECLARE_WND_CLASS2.

DECLARE_WND_CLASS umożliwia określenie nazwy nowej klasy okna, której informacje będą zarządzane przez CWndClassInfo. DECLARE_WND_CLASS definiuje nową klasę okien, implementując następującą funkcję statyczną:

static CWndClassInfo& GetWndClassInfo();

DECLARE_WND_CLASS określa następujące style dla nowego okna:

  • CS_HREDRAW

  • CS_VREDRAW

  • CS_DBLCLKS

DECLARE_WND_CLASS określa również domyślny kolor tła okna. Użyj makra DECLARE_WND_CLASS_EX , aby podać własne style i kolor tła.

CWindowImpl używa makra DECLARE_WND_CLASS do utworzenia okna na podstawie nowej klasy okna. Aby zastąpić to zachowanie, użyj makra DECLARE_WND_SUPERCLASS lub podaj własną implementację funkcji GetWndClassInfo .

Aby uzyskać więcej informacji na temat korzystania z okien w ATL, zobacz artykuł ATL Window Classes (Klasy okien ATL).

DECLARE_WND_CLASS2

(Visual Studio 2017) Podobnie jak DECLARE_WND_CLASS, ale z dodatkowym parametrem, który unika błędu nazwy zależnej podczas kompilowania z /permissive- opcji.

DECLARE_WND_CLASS2( WndClassName, EnclosingClass )

Parametry

WndClassName
[in] Nazwa nowej klasy okna. Jeśli wartość NULL, usługa ATL wygeneruje nazwę klasy okna.

Klasę ujętą
[in] Nazwa klasy okna, która otacza nową klasę okien. Nie można mieć wartości NULL.

Uwagi

Jeśli używasz /permissive- opcji, DECLARE_WND_CLASS spowoduje błąd kompilacji, ponieważ zawiera nazwę zależną. DECLARE_WND_CLASS2 wymaga jawnej nazwy klasy, w której jest używane to makro i nie powoduje błędu pod flagą /permissive-. W przeciwnym razie to makro jest identyczne z DECLARE_WND_CLASS.

DECLARE_WND_SUPERCLASS

Umożliwia określenie parametrów klasy. Umieść to makro w klasie kontrolki ActiveX ATL.

DECLARE_WND_SUPERCLASS( WndClassName, OrigWndClassName )

Parametry

WndClassName
[in] Nazwa klasy okna, która będzie superklasą OrigWndClassName. Jeśli wartość NULL, usługa ATL wygeneruje nazwę klasy okna.

OrigWndClassName
[in] Nazwa istniejącej klasy okna.

Uwagi

To makro umożliwia określenie nazwy klasy okna, która będzie superklasą istniejącej klasy okien. Klasa CWndClassInfo zarządza informacjami o superklasie.

DECLARE_WND_SUPERCLASS implementuje następującą funkcję statyczną:

static CWndClassInfo& GetWndClassInfo();

Domyślnie CWindowImpl używa makra DECLARE_WND_CLASS do utworzenia okna na podstawie nowej klasy okna. Określając makro DECLARE_WND_SUPERCLASS w klasie pochodnej CWindowImpl, klasa okna będzie oparta na istniejącej klasie, ale będzie używać procedury okna. Ta technika jest nazywana superklasą.

Oprócz używania makr DECLARE_WND_CLASS i DECLARE_WND_SUPERCLASS można zastąpić funkcję GetWndClassInfo własną implementacją.

Aby uzyskać więcej informacji na temat korzystania z okien w ATL, zobacz artykuł ATL Window Classes (Klasy okien ATL).

DECLARE_WND_CLASS_EX

Umożliwia określenie nazwy istniejącej klasy okna, na której będzie oparta nowa klasa okien. Umieść to makro w klasie kontrolki ActiveX ATL.

DECLARE_WND_CLASS_EX( WndClassName, style, bkgnd )

Parametry

WndClassName
[in] Nazwa nowej klasy okna. Jeśli wartość NULL, usługa ATL wygeneruje nazwę klasy okna.

Stylu
[in] Styl okna.

bkgnd
[in] Kolor tła okna.

Uwagi

To makro umożliwia określenie parametrów klasy nowej klasy okna, których informacje będą zarządzane przez CWndClassInfo. DECLARE_WND_CLASS_EX definiuje nową klasę okien przez zaimplementowanie następującej funkcji statycznej:

static CWndClassInfo& GetWndClassInfo();

Jeśli chcesz użyć domyślnych stylów i koloru tła, użyj makra DECLARE_WND_CLASS . Aby uzyskać więcej informacji na temat korzystania z okien w ATL, zobacz artykuł ATL Window Classes (Klasy okien ATL).

Zobacz też

Makra