Freigeben über


CContainedWindowT Class

Diese Klasse implementiert ein Fenster, das innerhalb eines anderen Objekts enthalten ist.

Wichtig

Diese Klasse und ihre Member können in Anwendungen nicht verwendet werden, die in der Windows Runtime ausführen.

template < 
class TBase= CWindow, 
class TWinTraits= CControlWinTraits  
> 
class CContainedWindowT : 
public TBase

Parameter

  • TBase
    Die Basisklasse der neuen Klasse. Die standardmäßige Basisklasse ist CWindow.

  • TWinTraits
    Eine Merkmalklasse, die Stile für das Fenster definiert. Der Standardwert ist CControlWinTraits.

Hinweis

CContainedWindow ist eine Spezialisierung von CContainedWindowT.Wenn Sie die Basisklasse oder Features ändern möchten, verwenden Sie CContainedWindowT direkt.

Mitglieder

Öffentliche Konstruktoren

Name

Description

CContainedWindowT::CContainedWindowT

Konstruktor. Initialisiert Datenmember, um anzugeben, welche Meldungszuordnung die enthaltenen Meldungen des Fensters verarbeitet.

Öffentliche Methoden

Name

Description

CContainedWindowT::Create

Stellt ein Fenster erstellt.

CContainedWindowT::DefWindowProc

Stellt das standardmäßige Meldungsverarbeiten bereit.

CContainedWindowT::GetCurrentMessage

Gibt die aktuelle Meldung zurück.

CContainedWindowT::RegisterWndSuperclass

Registriert die Fensterklasse des übergeordneten Fensters.

CContainedWindowT::SubclassWindow

Ordnet ein Fenster unter.

CContainedWindowT::SwitchMessageMap

Ändert, welche Meldungszuordnung verwendet wird, um die enthaltenen Meldungen des Fensters zu verarbeiten.

CContainedWindowT::UnsubclassWindow

Stellt ein zuvor untergeordnetes Fenster wiederher.

CContainedWindowT::WindowProc

(Statisch) verarbeitet die Nachrichten, die auf das enthaltende Fenster gesendet werden.

Öffentliche Datenmember

Name

Description

CContainedWindowT::m_dwMsgMapID

Identifiziert, welche Meldungszuordnung die enthaltenen Meldungen des Fensters verarbeitet.

CContainedWindowT::m_lpszClassName

Gibt den Namen einer vorhandenen Fensterklasse an, auf der eine neue Fensterklasse basiert.

CContainedWindowT::m_pfnSuperWindowProc

Punkte an die ursprüngliche Fensterprozedur der Fensterklasse.

CContainedWindowT::m_pObject

Zeigt auf enthaltenden Objekt.

Hinweise

CContainedWindowT implementiert ein Fenster, das innerhalb eines anderen Objekts enthalten ist. Die Fensterprozedur von CContainedWindowT verwendet eine Meldungszuordnung im enthaltenden Objekt zu den direkten Meldungen zu den zugehörigen Handler. Wenn Sie ein CContainedWindowT-Objekt erstellen, geben Sie an, welche Meldungszuordnung verwendet werden soll.

CContainedWindowT ermöglicht es Ihnen, ein neues Fenster erstellen, indem Sie eine vorhandene Fensterklasse superclassing. Die Methode registriert Create zuerst eine Fensterklasse, die basierend auf einer vorhandenen Klasse verwendet jedoch CContainedWindowT::WindowProc ist. Create erstellt dann ein Fenster auf Grundlage dieser neuen Fensterklasse basiert. Jede Instanz von CContainedWindowT machen übergeordnete Klasse eine andere Fensterklasse ein.

CContainedWindowT unterstützt auch Fenstererstellen von unterklassen. Die SubclassWindow-Methode fügt ein vorhandenes Fenster zum CContainedWindowT-Objekt an und ändert die Fensterprozedur zu CContainedWindowT::WindowProc. Jede Instanz von CContainedWindowT kann ein anderes Fenster unterordnen.

Hinweis

Für jedes angegebene Objekt CContainedWindowT rufen Sie entweder Create oder SubclassWindow auf.Sie sollten beide Methoden auf demselben Objekt nicht aufrufen.

Wenn Sie die Option Steuerelement hinzufügen, das auf folgendem basiert im ATL-Projekt-Assistenten verwenden, fügt der Assistent automatisch einen CContainedWindowT Datenmember der Klasse hinzu, die das Steuerelement implementiert. Im folgenden Beispiel wird gezeigt, wie dem Fenster deklariert wird:

public:
   // Declare a contained window data member
   CContainedWindow m_ctlEdit;

   // Initialize the contained window:
   // 1. Pass "Edit" to specify that the contained 
   //    window should be based on the standard 
   //    Windows Edit box
   // 2. Pass 'this' pointer to specify that CAtlEdit 
   //    contains the message map to be used for the 
   //    contained window's message processing
   // 3. Pass the identifier of the message map. '1'
   //    identifies the alternate message map declared
   //    with ALT_MSG_MAP(1)
   CAtlEdit()
      : m_ctlEdit(_T("Edit"), this, 1)
   {
      m_bWindowOnly = TRUE;
   }
// Declare the default message map, identified by '0'
BEGIN_MSG_MAP(CAtlEdit)
   MESSAGE_HANDLER(WM_CREATE, OnCreate)
   MESSAGE_HANDLER(WM_SETFOCUS, OnSetFocus)
   CHAIN_MSG_MAP(CComControl<CAtlEdit>)
// Declare an alternate message map, identified by '1'
ALT_MSG_MAP(1)
   MESSAGE_HANDLER(WM_CHAR, OnChar)
END_MSG_MAP()
// Define OnCreate handler
// When the containing window receives a WM_CREATE
// message, create the contained window by calling
// CContainedWindow::Create
LRESULT OnCreate(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, 
   BOOL& /*bHandled*/)
{
   RECT rc;
   GetWindowRect(&rc);
   rc.right -= rc.left;
   rc.bottom -= rc.top;
   rc.top = rc.left = 0;
   m_ctlEdit.Create(m_hWnd, rc, _T("hello"), WS_CHILD | WS_VISIBLE | 
      ES_MULTILINE | ES_AUTOVSCROLL);
   return 0;
}

Weitere Informationen finden Sie unter

Siehe

Erstellen von Steuerelementen

ATL-Lernprogramm

Verwenden der Fenster in ATL

ATL-Fensterklassen

ATL-Projekt-Assistent

Erstellen eines ATL-Projekts

Windows

Windows und folgende Themen in Windows SDK

Vererbungshierarchie

TBase

CContainedWindowT

Anforderungen

Header: atlwin.h

Siehe auch

Referenz

CWindow Class

CWindowImpl Class

CMessageMap Class

BEGIN_MSG_MAP

ALT_MSG_MAP

Weitere Ressourcen

ATL Class Overview