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.
styl
[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).