Makron för fönsterklass

Anmärkning

Det aktiva mallbiblioteket (ATL) stöds fortfarande. Vi lägger dock inte längre till funktioner eller uppdaterar dokumentationen.

Dessa makron definierar verktyg för fönsterklass.

Namn Description
DECLARE_WND_CLASS Gör att du kan ange namnet på en ny fönsterklass.
DECLARE_WND_CLASS2 (Visual Studio 2017) Gör att du kan ange namnet på en ny fönsterklass och den omslutande klass vars fönsterprocedur den nya klassen ska använda.
DECLARE_WND_SUPERCLASS Gör att du kan ange namnet på en befintlig fönsterklass som en ny fönsterklass ska baseras på.
DECLARE_WND_CLASS_EX Gör att du kan ange parametrarna för en klass.

Kravspecifikation

Rubrik: atlwin.h

DECLARE_WND_CLASS

Gör att du kan ange namnet på en ny fönsterklass. Placera makrot i en ATL ActiveX-kontrolls kontrollklass.

DECLARE_WND_CLASS( WndClassName )

Parameterar

WndClassName
[i] Namnet på den nya fönsterklassen. Om värdet är NULL genererar ATL ett namn på en fönsterklass.

Anmärkningar

Om du använder kompilatoralternativet /permissive- orsakar DECLARE_WND_CLASS ett kompilatorfel. använd DECLARE_WND_CLASS2 i stället.

DECLARE_WND_CLASS kan du ange namnet på en ny fönsterklass vars information ska hanteras av CWndClassInfo. DECLARE_WND_CLASS definierar den nya fönsterklassen genom att implementera följande statiska funktion:

static CWndClassInfo& GetWndClassInfo();

DECLARE_WND_CLASS anger följande formatmallar för det nya fönstret:

  • CS_HREDRAW

  • CS_VREDRAW

  • CS_DBLCLKS

DECLARE_WND_CLASS anger också standardfönstrets bakgrundsfärg. Använd makrot DECLARE_WND_CLASS_EX för att ange egna format och bakgrundsfärg.

CWindowImpl använder makrot DECLARE_WND_CLASS för att skapa ett fönster baserat på en ny fönsterklass. Om du vill åsidosätta det här beteendet använder du makrot DECLARE_WND_SUPERCLASS eller anger din egen implementering av funktionen GetWndClassInfo .

Mer information om hur du använder windows i ATL finns i artikeln ATL-fönsterklasser.

DECLARE_WND_CLASS2

(Visual Studio 2017) Liknar DECLARE_WND_CLASS, men med en extra parameter som undviker ett beroende namnfel vid kompilering med alternativet /permissive.

DECLARE_WND_CLASS2( WndClassName, EnclosingClass )

Parameterar

WndClassName
[i] Namnet på den nya fönsterklassen. Om värdet är NULL genererar ATL ett namn på en fönsterklass.

EnclosingClass
[i] Namnet på den fönsterklass som omger den nya fönsterklassen. Det går inte att vara NULL.

Anmärkningar

Om du använder alternativet /permissive- orsakar DECLARE_WND_CLASS ett kompileringsfel eftersom det innehåller ett beroende namn. DECLARE_WND_CLASS2 kräver att du uttryckligen namnger den klass som makrot används i och inte orsakar felet under flaggan /permissive- . Annars är makrot identiskt med DECLARE_WND_CLASS.

DECLARE_WND_SUPERCLASS

Gör att du kan ange parametrarna för en klass. Placera makrot i en ATL ActiveX-kontrolls kontrollklass.

DECLARE_WND_SUPERCLASS( WndClassName, OrigWndClassName )

Parameterar

WndClassName
[i] Namnet på den fönsterklass som ska superklassa OrigWndClassName. Om värdet är NULL genererar ATL ett namn på en fönsterklass.

OrigWndClassName
[i] Namnet på en befintlig fönsterklass.

Anmärkningar

Med det här makrot kan du ange namnet på en fönsterklass som ska superklassa en befintlig fönsterklass. CWndClassInfo hanterar informationen om superklassen.

DECLARE_WND_SUPERCLASS implementerar följande statiska funktion:

static CWndClassInfo& GetWndClassInfo();

Som standard använder CWindowImplDECLARE_WND_CLASS makro för att skapa ett fönster baserat på en ny fönsterklass. Genom att ange det DECLARE_WND_SUPERCLASS makrot i en CWindowImpl-derived-klass baseras fönsterklassen på en befintlig klass men använder fönsterproceduren. Den här tekniken kallas superklassning.

Förutom att använda makron DECLARE_WND_CLASS och DECLARE_WND_SUPERCLASS kan du åsidosätta funktionen GetWndClassInfo med din egen implementering.

Mer information om hur du använder windows i ATL finns i artikeln ATL-fönsterklasser.

DECLARE_WND_CLASS_EX

Gör att du kan ange namnet på en befintlig fönsterklass som en ny fönsterklass ska baseras på. Placera makrot i en ATL ActiveX-kontrolls kontrollklass.

DECLARE_WND_CLASS_EX( WndClassName, style, bkgnd )

Parameterar

WndClassName
[i] Namnet på den nya fönsterklassen. Om värdet är NULL genererar ATL ett namn på en fönsterklass.

stil
[i] Fönstrets format.

bkgnd
[i] Fönstrets bakgrundsfärg.

Anmärkningar

Med det här makrot kan du ange klassparametrarna för en ny fönsterklass, vars information kommer att hanteras av CWndClassInfo. DECLARE_WND_CLASS_EX definierar den nya fönsterklassen genom att implementera följande statiska funktion:

static CWndClassInfo& GetWndClassInfo();

Om du vill använda standardformat och bakgrundsfärg använder du makrot DECLARE_WND_CLASS . Mer information om hur du använder windows i ATL finns i artikeln ATL-fönsterklasser.

Se även

Makron