창 클래스 매크로
이러한 매크로는 창 클래스 유틸리티를 정의합니다.
속성 | 설명 |
---|---|
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 매크로를 사용하여 새 창 클래스를 기반으로 창을 만듭니다. 파생 클래스에서 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 창 클래스 문서를 참조하세요.