CContainedWindowT-Klasse
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 |
---|---|
Konstruktor.Initialisiert Datenmember, um anzugeben, welche Meldungszuordnung die enthaltenen Meldungen des Fensters verarbeitet. |
Öffentliche Methoden
Name |
Description |
---|---|
Stellt ein Fenster erstellt. |
|
Stellt das standardmäßige Meldungsverarbeiten bereit. |
|
Gibt die aktuelle Meldung zurück. |
|
Registriert die Fensterklasse des übergeordneten Fensters. |
|
Ordnet ein Fenster unter. |
|
Ändert, welche Meldungszuordnung verwendet wird, um die enthaltenen Meldungen des Fensters zu verarbeiten. |
|
Stellt ein zuvor untergeordnetes Fenster wiederher. |
|
(Statisch) verarbeitet die Nachrichten, die auf das enthaltende Fenster gesendet werden. |
Öffentliche Datenmember
Name |
Description |
---|---|
Identifiziert, welche Meldungszuordnung die enthaltenen Meldungen des Fensters verarbeitet. |
|
Gibt den Namen einer vorhandenen Fensterklasse an, auf der eine neue Fensterklasse basiert. |
|
Punkte an die ursprüngliche Fensterprozedur der Fensterklasse. |
|
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 |
|
Verwenden der Fenster in ATL |
|
ATL-Projekt-Assistent |
|
Windows |
Windows und folgende Themen in Windows SDK |
Vererbungshierarchie
TBase
CContainedWindowT
Anforderungen
Header: atlwin.h