포함 된 창 사용

ATL CContainedWindow포함 된 창을 구현합니다. 포함 된 창을 메시지를 자체 클래스에서 처리 하는 대신 컨테이너 개체에 위임 하는 창을 나타냅니다.

메모nbsp;??포함 된 창을 사용 하려면 CContainedWindow 에서 클래스를 파생 시킬 필요는 없습니다(&N).

포함 된 창으로 기존 Windows 클래스 또는 하위 클래스는 기존 창 중 수퍼를 수 있습니다. 창을 만들 수 있는 수퍼 기존 하는 창 클래스, 먼저 CContainedWindow 개체의 생성자에 있는 기존 클래스 이름을 지정 합니다. 그런 다음 CContainedWindow::Create을 호출 합니다. 기존 창 서브 클래스 하 Windows 클래스 이름 ( NULL 에 전달할 생성자)를 지정할 필요가 없습니다. 서브클래싱된 되는 창 핸들이 있는 CContainedWindow::SubclassWindow 메서드를 호출。

일반적으로 포함 된 windows를 사용 하 여 컨테이너 클래스의 데이터 멤버로. 컨테이너 창을; 될 필요는 없습니다. 그러나, 그것은 CMessageMap 에서 파생 되어야 합니다.

포함 된 창 메시지를 처리 하기 위해 대체 메시지 맵을 사용할 수 있습니다. 만약 당신이 하나 이상의 포함 된 창, 여러 대체 메시지 맵, 별도 포함 된 창에 대 한 각 해당 선언 해야。

다음은 두 개의 포함 된 창 가진 컨테이너 클래스의 예:

cMyContainer 클래스: 공용 CMessageMap...
{
공개:
 nbsp; CContainedWindow m_wndEdit;
 ? CContainedWindow m_wndList;

CMyContainer(): m_wndEdit ("편집"이 1), m_wndList ("목록",이, 2).
 ? {
 ? }

...

BEGIN_MSG_MAP(CMyContainer)
 ? ALT_MSG_MAP(&1)
 ???? / / 여기에 서 편집 창에 대 한 처리기
 ? ALT_MSG_MAP(2)
 ???? / / 여기에 서 목록 창에 대 한 처리기
 ? END_MSG_MAP()

}

포함 된 창에 대 한 자세한 내용은 참조를 SUBEDIT 샘플. Superclassing 및 서브클래싱에 대 한 자세한 내용은 참조 창 프로시저 Superclassing 및 Win32 SDK 에서 창 프로시저 서브클래싱。

Index