CWindowImpl Class
창을 만들거나 서브클래싱 하기 위한 메서드를 제공 합니다.
중요
이 클래스 및 해당 멤버는 Windows 런타임에서 실행되는 응용 프로그램에서 사용할 수 없습니다.
template <
class T,
class TBase= CWindow,
class TWinTraits= CControlWinTraits
>
class ATL_NO_VTABLE CWindowImpl :
public CWindowImplBaseT< TBase, TWinTraits>
매개 변수
T
새 클래스는 CWindowImpl에서 파생됩니다.TBase
클래스의 기본 클래스입니다. 기본적으로, 기본 클래스는 CWindow입니다.TWinTraits
A 특성 클래스 는 창 스타일을 정의합니다. 기본값은 CControlWinTraits입니다.
Members
Public 메서드
이름 |
설명 |
---|---|
창을 만듭니다. |
CWindowImplBaseT 메서드
기본 메시지 처리를 제공합니다. |
|
현재 메시지를 반환합니다. |
|
현재 창 프로시저를 반환합니다. |
|
마지막 메시지를 받은 후 호출 합니다 (일반적으로 WM_NCDESTROY). |
|
창 서브클래스 |
|
이전에 서브클래싱된 창을 복원합니다. |
정적 메서드
창 클래스 정보를 관리하는 CWndClassInfo의 정적 인스턴스를 반환합니다. |
|
창으로 보내는 메시지를 처리 합니다. |
데이터 멤버
창 클래스의 원본 창 프로시저를 가리킵니다. |
설명
CWindowImpl 를 사용하여 기존 창 창 또는 하위 클래스를 만들 수 있습니다. CWindowImpl 창 프로시저는 해당 처리기에 메시지를 보낼 메시지 맵을 사용 합니다.
CWindowImpl::Create 는 CWndClassInfo에 관리되는 창 클래스 정보에 기반한 창을 만듭니다. CWindowImpl 는 DECLARE_WND_CLASS 매크로를 포함합니다. 이것은 CWndClassInfo 가 새 창 클래스를 등록한다는 의미입니다. 기존 창 클래스를 슈퍼클래스로 원한다면, CWindowImpl 에서 클래스를 파생하고 DECLARE_WND_SUPERCLASS 매크로를 포함시킵니다. 이 경우, CWndClassInfo 는 기존 클래스를 기반으로 하는 창 클래스 등록하지만 CWindowImpl::WindowProc을 사용합니다. 예를 들면 다음과 같습니다.
class ATL_NO_VTABLE CMyWindow :
OtherInheritedClasses
public CComControl<CMyWindow>
// CComControl derives from CWindowImpl
{
public:
// 1. The NULL parameter means ATL will generate a
// name for the superclass
// 2. The "EDIT" parameter means the superclass is
// based on the standard Windows Edit box
DECLARE_WND_SUPERCLASS(NULL, _T("EDIT"))
// Remainder of class declaration omitted
참고
CWndClassInfo 는 한 윈도우 클래스의 정보를 관리하기 때문에, CWindowImpl 의 인스턴스를 통해 만들어진 각 창은 같은 창 클래스를 기반으로 합니다.
CWindowImpl 은 또한 창 서브클래싱도 지원합니다. SubclassWindow 메서드는 기존 창을 CWindowImpl 개체에 붙이고 CWindowImpl::WindowProc에 윈도우 프로시저를 변경합니다. CWindowImpl 의 각 인스턴스는 다른 창을 서브 클래스 할 수 있습니다.
참고
주어진 CWindowImpl 개체에 대해, 만들기 또는 SubclassWindow 중에서 하나를 호출합니다.두 메서드 모두 동일한 개체에 호출 하지 마십시오.
CWindowImpl 이외에, ATL은CContainedWindow 를 다른 개체에 포함된 창을 만들기 위해 제공합니다.
기본 클래스 소멸자는 (~CWindowImplRoot) 개체가 소멸 되기 전에 창에서 사라집니다.
CWindowImpl 은 CWindowImplBaseT에서 파생됩니다. 이것은 CWindowImplRoot에서 파생되었고, 이것은 또 TBase 및 CMessageMap에서 파생됩니다.
추가 정보 |
참조 |
---|---|
컨트롤 만들기 |
|
ATL에서 창 사용하기 |
|
ATL 프로젝트 마법사 |
상속 계층 구조
TBase
CWindowImplRoot
CWindowImplBaseT
CWindowImpl
요구 사항
헤더: atlwin.h