Sdílet prostřednictvím


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é CWindowImpltří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.

Viz také

Makra