CWindowImpl Class
Stellt Methoden für das Erstellen eines Fensters oder von Unterklassen eines Fensters bereit
Wichtig
Diese Klasse und ihre Member können in Anwendungen, die in Windows-Runtime ausgeführt werden, nicht verwendet werden.
template <
class T,
class TBase= CWindow,
class TWinTraits= CControlWinTraits
>
class ATL_NO_VTABLE CWindowImpl :
public CWindowImplBaseT< TBase, TWinTraits>
Parameter
T
Die neue Klasse, die von CWindowImpl abgeleitet ist.TBase
Die Basisklasse der Klasse. Die Basisklasse lautet standardmäßig CWindow.TWinTraits
Eine Trait-Klasse, die Formatvorlagen für das Fenster definiert. Der Standardwert ist CControlWinTraits.
Member
Öffentliche Methoden
Name |
Beschreibung |
---|---|
Erstellt ein Fenster. |
CWindowImplBaseT-Methoden
Stellt die Standardverarbeitung von Nachrichten bereit. |
|
Die gibt die aktuelle Nachricht zurück. |
|
Gibt die aktuelle Fensterprozedur zurück. |
|
Wird nach dem Empfang der letzten Nachricht aufgerufen (in der Regel WM_NCDESTROY). |
|
Erstellt Unterklassen eines Fensters. |
|
Stellt ein zuvor untergeordnetes Fenster wieder her. |
Statische Methoden
Gibt eine statische CWndClassInfo-Instanz zurück, mit der die Fensterklasseninformationen verwaltet werden. |
|
Verarbeitet die Nachrichten, die an das Fenster gesendet werden. |
Datenmember
Zeigt auf die ursprüngliche Fensterprozedur der Fensterklasse. |
Hinweise
Mit CWindowImpl können Sie ein Fenster erstellen oder ein vorhandenes Fenster unterordnen. Die Fensterprozedur CWindowImpl verwendet eine Nachrichtenzuordnung, um Nachrichten auf die entsprechenden Handler zu leiten.
CWindowImpl::Create erstellt ein Fenster auf der Grundlage der Fensterklasseninformationen, das durch CWndClassInfo verwaltet wird. CWindowImpl enthält das DECLARE_WND_CLASS-Makro. Dies bedeutet, dass mit CWndClassInfo eine neue Windows-Klasse registriert wird. Wenn Sie eine vorhandene Fensterklasse überordnen möchten, leiten Sie die Klasse von CWindowImpl ab, und fügen Sie das Makro DECLARE_WND_SUPERCLASS ein. In diesem Fall wird mit CWndClassInfo eine Fensterklasse registriert, die auf einer vorhandenen Klasse basiert, aber CWindowImpl::WindowProc verwendet. 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 nur die Informationen für eine Fensterklasse verwaltet, basiert jedes Fenster, das durch eine Instanz von CWindowImpl erstellt wird, auf der gleichen Fensterklasse.
CWindowImpl unterstützt auch die Erstellung von Unterklassen von Fenstern. Die SubclassWindow-Methode fügt ein vorhandenes Fenster an das CWindowImpl-Objekt an und ändert die Fensterprozedur in CWindowImpl::WindowProc. Jede Instanz von CWindowImpl kann ein anderes Fenster unterordnen.
Hinweis
Rufen Sie für jedes CWindowImpl-Objekt entweder Erstellen oder SubclassWindow auf.Rufen Sie nicht beide Methoden für dasselbe Objekt auf.
Neben CWindowImpl stellt ATL CContainedWindow bereit, um ein Fenster zu erstellen, das in einem anderen Objekt enthalten ist.
Mit dem Basisklassendestruktor (~CWindowImplRoot) wird sichergestellt, dass das Fenster verfügbar wird, bevor das Objekt beschädigt wird.
CWindowImpl ist von CWindowImplBaseT abgeleitet, das von CWindowImplRoot abgeleitet ist, das wiederum von TBase und CMessageMap abgeleitet ist.
Weitere Informationen zu |
Siehe |
---|---|
Erstellen von Steuerelementen |
|
Verwenden von Fenstern in ATL |
|
ATL-Projekt-Assistent |
Vererbungshierarchie
TBase
CWindowImplRoot
CWindowImplBaseT
CWindowImpl
Anforderungen
Header: atlwin.h