Makra třídy okna
Tato makra definují nástroje tříd oken.
Název | Popis |
---|---|
DECLARE_WND_CLASS | Umožňuje zadat název nové třídy okna. |
DECLARE_WND_CLASS2 | (Visual Studio 2017) Umožňuje zadat název nové třídy okna a ohraničující třídu, jejíž okno procedura bude nová třída používat. |
DECLARE_WND_SUPERCLASS | Umožňuje zadat název existující třídy okna, na které bude založena nová třída okna. |
DECLARE_WND_CLASS_EX | Umožňuje zadat parametry třídy. |
Požadavky
Hlavička: atlwin.h
DECLARE_WND_CLASS
Umožňuje zadat název nové třídy okna. Toto makro umístěte do třídy ovládacího prvku ACTIVEX ovládacího prvku ATL.
DECLARE_WND_CLASS( WndClassName )
Parametry
WndClassName
[v] Název nové třídy okna. Pokud má hodnotu NULL, ATL vygeneruje název třídy okna.
Poznámky
Pokud používáte možnost /permissive- compiler, DECLARE_WND_CLASS způsobí chybu kompilátoru; místo toho použijte DECLARE_WND_CLASS2.
DECLARE_WND_CLASS umožňuje zadat název nové třídy okna, jejíž informace budou spravovány CWndClassInfo. DECLARE_WND_CLASS definuje novou třídu okna implementací následující statické funkce:
static CWndClassInfo& GetWndClassInfo();
DECLARE_WND_CLASS určuje následující styly pro nové okno:
CS_HREDRAW
CS_VREDRAW
CS_DBLCLKS
DECLARE_WND_CLASS také určuje výchozí barvu pozadí okna. Pomocí DECLARE_WND_CLASS_EX makra můžete zadat vlastní styly a barvu pozadí.
CWindowImpl používá DECLARE_WND_CLASS makro k vytvoření okna založeného na nové třídě okna. Chcete-li toto chování přepsat, použijte DECLARE_WND_SUPERCLASS makro nebo zadejte vlastní implementaci Funkce GetWndClassInfo .
Další informace o používání oken v ATL naleznete v článku ATL Třídy oken.
DECLARE_WND_CLASS2
(Visual Studio 2017) Podobá se DECLARE_WND_CLASS, ale s dodatečným parametrem, který při kompilaci pomocí parametru /permissive- zabraňuje chybě závislého názvu.
DECLARE_WND_CLASS2( WndClassName, EnclosingClass )
Parametry
WndClassName
[v] Název nové třídy okna. Pokud má hodnotu NULL, ATL vygeneruje název třídy okna.
Uzavřená třída
[v] Název třídy okna, která uzavře novou třídu okna. Nesmí mít hodnotu NULL.
Poznámky
Pokud používáte možnost /permissive-, DECLARE_WND_CLASS způsobí chybu kompilace, protože obsahuje závislý název. DECLARE_WND_CLASS2 vyžaduje, abyste explicitně pojmenovávali třídu, ve které se toto makro používá, a nezpůsobí chybu pod příznakem /permissive-. V opačném případě je toto makro stejné jako DECLARE_WND_CLASS.
DECLARE_WND_SUPERCLASS
Umožňuje zadat parametry třídy. Toto makro umístěte do třídy ovládacího prvku ACTIVEX ovládacího prvku ATL.
DECLARE_WND_SUPERCLASS( WndClassName, OrigWndClassName )
Parametry
WndClassName
[v] Název třídy okna, která bude nadtřídě OrigWndClassName. Pokud má hodnotu NULL, ATL vygeneruje název třídy okna.
OrigWndClassName
[v] Název existující třídy okna.
Poznámky
Toto makro umožňuje zadat název třídy okna, která bude nadtřídět existující třídu okna. CWndClassInfo spravuje informace supertřídy.
DECLARE_WND_SUPERCLASS implementuje následující statickou funkci:
static CWndClassInfo& GetWndClassInfo();
Ve výchozím nastavení CWindowImpl používá makro DECLARE_WND_CLASS k vytvoření okna založeného na nové třídě okna. Zadáním DECLARE_WND_SUPERCLASS makra v odvozené CWindowImpl
třídě bude třída okna založená na existující třídě, ale použije proceduru okna. Tato technika se nazývá supertřídy.
Kromě použití DECLARE_WND_CLASS a DECLARE_WND_SUPERCLASS maker můžete přepsat funkci GetWndClassInfo vlastní implementací.
Další informace o používání oken v ATL naleznete v článku ATL Třídy oken.
DECLARE_WND_CLASS_EX
Umožňuje zadat název existující třídy okna, na které bude založena nová třída okna. Toto makro umístěte do třídy ovládacího prvku ACTIVEX ovládacího prvku ATL.
DECLARE_WND_CLASS_EX( WndClassName, style, bkgnd )
Parametry
WndClassName
[v] Název nové třídy okna. Pokud má hodnotu NULL, ATL vygeneruje název třídy okna.
styl
[v] Styl okna
bkgnd
[v] Barva pozadí okna.
Poznámky
Toto makro umožňuje zadat parametry třídy nové třídy okna, jejichž informace budou spravovány CWndClassInfo. DECLARE_WND_CLASS_EX definuje novou třídu okna implementací následující statické funkce:
static CWndClassInfo& GetWndClassInfo();
Pokud chcete použít výchozí styly a barvu pozadí, použijte DECLARE_WND_CLASS makro. Další informace o používání oken v ATL naleznete v článku ATL Třídy oken.