다음을 통해 공유


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 메서드

이름

설명

CWindowImpl::Create

창을 만듭니다.

CWindowImplBaseT 메서드

DefWindowProc

기본 메시지 처리를 제공합니다.

GetCurrentThread

현재 메시지를 반환합니다.

GetWindowProc

현재 창 프로시저를 반환합니다.

OnFinalMessage

마지막 메시지를 받은 후 호출 합니다 (일반적으로 WM_NCDESTROY).

SubclassWindow

창 서브클래스

UnsubclassWindow

이전에 서브클래싱된 창을 복원합니다.

정적 메서드

GetWndClassInfo

창 클래스 정보를 관리하는 CWndClassInfo의 정적 인스턴스를 반환합니다.

WindowProc

창으로 보내는 메시지를 처리 합니다.

데이터 멤버

m_pfnSuperWindowProc

창 클래스의 원본 창 프로시저를 가리킵니다.

설명

CWindowImpl 를 사용하여 기존 창 창 또는 하위 클래스를 만들 수 있습니다. CWindowImpl 창 프로시저는 해당 처리기에 메시지를 보낼 메시지 맵을 사용 합니다.

CWindowImpl::CreateCWndClassInfo에 관리되는 창 클래스 정보에 기반한 창을 만듭니다. CWindowImplDECLARE_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) 개체가 소멸 되기 전에 창에서 사라집니다.

CWindowImplCWindowImplBaseT에서 파생됩니다. 이것은 CWindowImplRoot에서 파생되었고, 이것은 또 TBaseCMessageMap에서 파생됩니다.

추가 정보

참조

컨트롤 만들기

ATL 자습서

ATL에서 창 사용하기

ATL 창 클래스

ATL 프로젝트 마법사

ATL 프로젝트 만들기

상속 계층 구조

CMessageMap

TBase

CWindowImplRoot

CWindowImplBaseT

CWindowImpl

요구 사항

헤더: atlwin.h

참고 항목

참조

BEGIN_MSG_MAP

CComControl Class

기타 리소스

ATL Class Overview