Freigeben über


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

CWindowImpl::Create

Erstellt ein Fenster.

CWindowImplBaseT-Methoden

DefWindowProc

Stellt die Standardverarbeitung von Nachrichten bereit.

GetCurrentMessage

Die gibt die aktuelle Nachricht zurück.

GetWindowProc

Gibt die aktuelle Fensterprozedur zurück.

OnFinalMessage

Wird nach dem Empfang der letzten Nachricht aufgerufen (in der Regel WM_NCDESTROY).

SubclassWindow

Erstellt Unterklassen eines Fensters.

UnsubclassWindow

Stellt ein zuvor untergeordnetes Fenster wieder her.

Statische Methoden

GetWndClassInfo

Gibt eine statische CWndClassInfo-Instanz zurück, mit der die Fensterklasseninformationen verwaltet werden.

WindowProc

Verarbeitet die Nachrichten, die an das Fenster gesendet werden.

Datenmember

m_pfnSuperWindowProc

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

ATL-Lernprogramm

Verwenden von Fenstern in ATL

ATL-Fensterklassen

ATL-Projekt-Assistent

Erstellen eines ATL-Projekts

Vererbungshierarchie

CMessageMap

TBase

CWindowImplRoot

CWindowImplBaseT

CWindowImpl

Anforderungen

Header: atlwin.h

Siehe auch

Referenz

BEGIN_MSG_MAP

CComControl Class

Weitere Ressourcen

ATL Class Overview