CWindowImpl-Klasse
Diese Klasse stellt Methoden zum Erstellen oder das Erstellen von Unterklassen von eines Fensters.
Wichtig |
---|
Diese Klasse und ihre Member können in Anwendungen nicht verwendet werden, die in der Windows Runtime ausführen. |
template <
class T,
class TBase= CWindow,
class TWinTraits= CControlWinTraits
>
class ATL_NO_VTABLE CWindowImpl :
public CWindowImplBaseT< TBase, TWinTraits>
Parameter
T
Die Klasse, die von abgeleitet CWindowImpl.TBase
Die Basisklasse der neuen Klasse.Die standardmäßige Basisklasse ist CWindow.TWinTraits
Merkmalklasse Stile, die für das Fenster definiert.Der Standardwert ist CControlWinTraits.
Mitglieder
Öffentliche Methoden
Name |
Description |
---|---|
Stellt ein Fenster erstellt. |
CWindowImplBaseT-Methoden
Stellt das standardmäßige Meldungsverarbeiten bereit. |
|
Gibt die aktuelle Meldung zurück. |
|
Gibt die Prozedur des aktiven Fensters zurück. |
|
Aufgerufen, nachdem die letzte Meldung empfangen wurde (in der Regel WM_NCDESTROY). |
|
Ordnet ein Fenster unter. |
|
Stellt ein zuvor untergeordnetes Fenster wiederher. |
Statische Methoden
Gibt eine statische Instanz von CWndClassInfo zurück, die die Fensterklasseninformationen verwaltet. |
|
Verarbeitet die Meldungen, die an das Fenster gesendet werden. |
Datenmember
Punkte an die ursprüngliche Fensterprozedur der Fensterklasse. |
Hinweise
CWindowImpl ermöglicht es Ihnen, ein neues Fenster zu erstellen oder ein vorhandenes Fenster unterzuordnen.Die Fensterprozedur von CWindowImpl verwendet eine Meldungszuordnung, um Meldungen auf die entsprechenden Handler zu verweisen.
CWindowImpl::Create stellt ein neues Fenster auf Grundlage der Fensterklasseninformationen erstellt, die in CWndClassInfo verwaltet werden.CWindowImpl enthält das DECLARE_WND_CLASS-Makro, das bedeutet, dass CWndClassInfo eine neue Windows-Klasse registriert.Wenn Sie der übergeordneten Klasse eine vorhandene Fensterklasse soll, leiten Sie die Klasse von CWindowImpl und schließen Sie das DECLARE_WND_SUPERCLASS-Makro ein.In diesem Fall registriert CWndClassInfo eine Fensterklasse, die basierend auf einer vorhandenen Klasse verwendet jedoch CWindowImpl::WindowProc ist.Beispiel:
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
Hinweis |
---|
Da CWndClassInfo die Informationen für eine einzelne Fensterklasse verwaltet, ist jedes Fenster, das durch eine Instanz von CWindowImpl erstellt wird, auf der gleichen Fensterklasse. |
CWindowImpl unterstützt auch Fenstererstellen von unterklassen.Die SubclassWindow-Methode fügt ein vorhandenes Fenster zum CWindowImpl-Objekt an und ändert die Fensterprozedur zu CWindowImpl::WindowProc.Jede Instanz von CWindowImpl kann ein anderes Fenster unterordnen.
Hinweis |
---|
Für jedes angegebene Objekt CWindowImpl rufen Sie entweder Create oder SubclassWindow auf.Sie sollten beide Methoden auf demselben Objekt nicht aufrufen. |
Zusätzlich zu CWindowImpl stellt ATL CContainedWindow, um ein Fenster erstellen, das innerhalb eines anderen Objekts enthalten ist.
Der Basisklassendestruktor (~CWindowImplRoot) wird sichergestellt, dass das Fenster gegangen ist, bevor das Objekt zerstört wird.
CWindowImpl wird von abgeleitet CWindowImplBaseT, das von CWindowImplRoot abgeleitet, das wiederum von TBase und von CMessageMap abgeleitet.
Weitere Informationen finden Sie unter |
Siehe |
---|---|
Erstellen von Steuerelementen |
|
Verwenden der Fenster in ATL |
|
ATL-Projekt-Assistent |
|
Windows |
Vererbungshierarchie
TBase
CWindowImplRoot
CWindowImplBaseT
CWindowImpl
Anforderungen
Header: atlwin.h