다음을 통해 공유


창 클래스 매크로

이러한 매크로는 창 클래스 유틸리티를 정의합니다.

속성 설명
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();

기본적으로 CWindowImplDECLARE_WND_CLASS 매크로를 사용하여 새 창 클래스를 기반으로 창을 만듭니다. 파생 클래스에서 DECLARE_WND_SUPERCLASS 매크로를 CWindowImpl지정하면 창 클래스는 기존 클래스를 기반으로 하지만 창 프로시저를 사용합니다. 이 기술을 슈퍼클래싱이라고 합니다.

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 창 클래스 문서를 참조하세요.

참고 항목

매크로