共用方式為


視窗類別巨集

這些宏會定義視窗類別公用程式。

名稱 描述
DECLARE_WND_CLASS 可讓您指定新視窗類別的名稱。
DECLARE_WND_CLASS2 (Visual Studio 2017)可讓您指定新視窗類別的名稱,以及新類別將使用其視窗程式的封入類別。
DECLARE_WND_SUPERCLASS 可讓您指定新視窗類別所依據之現有視窗類別的名稱。
DECLARE_WND_CLASS_EX 可讓您指定類別的參數。

需求

標頭: atlwin.h

DECLARE_WND_CLASS

可讓您指定新視窗類別的名稱。 將此宏放在 ATL ActiveX 控制項的控制項類別中。

DECLARE_WND_CLASS( WndClassName )

參數

WndClassName
[in]新視窗類別的名稱。 如果為 Null,ATL 會產生視窗類別名稱。

備註

如果您使用 /permissive- 編譯器選項,則DECLARE_WND_CLASS會導致編譯器錯誤;請改用 DECLARE_WND_CLASS2。

DECLARE_WND_CLASS可讓您指定新視窗類別的名稱,其資訊將由 CWndClassInfo 管理 。 DECLARE_WND_CLASS藉由實作下列靜態函式來定義新的視窗類別:

static CWndClassInfo& GetWndClassInfo();

DECLARE_WND_CLASS指定新視窗的下列樣式:

  • CS_HREDRAW

  • CS_VREDRAW

  • CS_DBLCLKS

DECLARE_WND_CLASS也會指定預設視窗的背景色彩。 使用 DECLARE_WND_CLASS_EX 宏來提供您自己的樣式和背景色彩。

CWindowImpl 會使用 DECLARE_WND_CLASS 宏,根據新的視窗類別建立視窗。 若要覆寫此行為,請使用 DECLARE_WND_SUPERCLASS 宏,或提供您自己的 GetWndClassInfo 函式實作

如需在 ATL 中使用視窗的詳細資訊,請參閱 ATL 視窗類別 一文

DECLARE_WND_CLASS2

(Visual Studio 2017)類似于DECLARE_WND_CLASS,但具有額外的參數,可在使用 /permissive- 選項進行編譯時避免相依名稱錯誤。

DECLARE_WND_CLASS2( WndClassName, EnclosingClass )

參數

WndClassName
[in]新視窗類別的名稱。 如果為 Null,ATL 會產生視窗類別名稱。

EnclosingClass
[in]將新視窗類別括住的視窗類別名稱。 不可以是 NULL。

備註

如果您使用 /permissive- 選項,則DECLARE_WND_CLASS會導致編譯錯誤,因為它包含相依名稱。 DECLARE_WND_CLASS2要求您明確命名這個宏所使用的類別,而且不會在 /permissive- 旗標下造成錯誤。 否則,這個宏與 DECLARE_WND_CLASS 相同。

DECLARE_WND_SUPERCLASS

可讓您指定類別的參數。 將此宏放在 ATL ActiveX 控制項的控制項類別中。

DECLARE_WND_SUPERCLASS( WndClassName, OrigWndClassName )

參數

WndClassName
[in]將超類別 OrigWndClassName 的視窗類別名稱。 如果為 Null,ATL 會產生視窗類別名稱。

OrigWndClassName
[in]現有視窗類別的名稱。

備註

這個宏可讓您指定將超級類別化現有視窗類別的視窗類別名稱。 CWndClassInfo 會管理超類別的資訊。

DECLARE_WND_SUPERCLASS實作下列靜態函式:

static CWndClassInfo& GetWndClassInfo();

根據預設, CWindowImpl 會使用 DECLARE_WND_CLASS 宏,根據新的視窗類別建立視窗。 藉由在衍生類別中 CWindowImpl 指定DECLARE_WND_SUPERCLASS宏,視窗類別會以現有的類別為基礎,但會使用您的視窗程式。 這項技術稱為超類別化。

除了使用DECLARE_WND_CLASS和DECLARE_WND_SUPERCLASS宏之外,您還可以使用自己的實作覆寫 GetWndClassInfo 函式。

如需在 ATL 中使用視窗的詳細資訊,請參閱 ATL 視窗類別 一文

DECLARE_WND_CLASS_EX

可讓您指定新視窗類別所依據之現有視窗類別的名稱。 將此宏放在 ATL ActiveX 控制項的控制項類別中。

DECLARE_WND_CLASS_EX( WndClassName, style, bkgnd )

參數

WndClassName
[in]新視窗類別的名稱。 如果為 Null,ATL 會產生視窗類別名稱。

style
[in]視窗的樣式。

bkgnd
[in]視窗的背景色彩。

備註

這個宏可讓您指定新視窗類別的類別參數,其資訊將由 CWndClassInfo 管理 。 DECLARE_WND_CLASS_EX藉由實作下列靜態函式來定義新的視窗類別:

static CWndClassInfo& GetWndClassInfo();

如果您想要使用預設樣式和背景色彩,請使用 DECLARE_WND_CLASS 宏。 如需在 ATL 中使用視窗的詳細資訊,請參閱 ATL 視窗類別 一文

另請參閱

巨集