Condividi tramite


CWindowImpl Class

Fornisce metodi per la creazione di una finestra o di una sua sottoclasse.

Importante

Tale classe ed i relativi membri non possono essere utilizzati in applicazioni eseguite in Windows Runtime.

template < 
class T, 
class TBase= CWindow, 
class TWinTraits= CControlWinTraits  
> 
class ATL_NO_VTABLE CWindowImpl : 
public CWindowImplBaseT< TBase, TWinTraits>

Parametri

  • T
    La nuova classe, derivata da CWindowImpl.

  • TBase
    La classe base della classe. Per impostazione predefinita, la classe base è CWindow.

  • TWinTraits
    Una classe di caratteristiche in cui sono definiti gli stili della finestra. Il valore predefinito è CControlWinTraits.

Membri

Metodi pubblici

Nome

Descrizione

CWindowImpl::Create

Crea una finestra.

Metodi di CWindowImplBaseT

DefWindowProc

Fornisce l'elaborazione dei messaggi predefinita.

GetCurrentMessage

Restituisce il messaggio corrente.

GetWindowProc

Restituisce la routine della finestra corrente.

OnFinalMessage

Chiamata dopo aver ricevuto l'ultimo messaggio (in genere WM_NCDESTROY).

SubclassWindow

Crea una sottoclasse di una finestra.

UnsubclassWindow

Ripristina una finestra precedentemente impostata come sottoclasse.

Metodi statici

GetWndClassInfo

Restituisce un'istanza static di CWndClassInfo, che gestisce le informazioni sulla classe della finestra.

WindowProc

Elabora i messaggi inviati alla finestra.

Membri di dati

m_pfnSuperWindowProc

Punta alla routine della finestra originale della classe della finestra.

Note

È possibile utilizzare CWindowImpl per creare una finestra o una sottoclasse di una finestra esistente. La routine della finestra CWindowImpl utilizza una mappa dei messaggi per indirizzare i messaggi ai gestori appropriati.

CWindowImpl::Create crea una finestra sulla base delle informazioni della classe della finestra gestite da CWndClassInfo. CWindowImpl contiene la macro DECLARE_WND_CLASS, ovvero CWndClassInfo registra una nuova classe della finestra. Se si desidera rendere superclasse a una classe finestra esistente, derivare la classe da CWindowImpl e includere la macro DECLARE_WND_SUPERCLASS. In questo caso, CWndClassInfo registra una classe della finestra basata su una classe esistente ma utilizza CWindowImpl::WindowProc. Ad esempio:

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

Nota

Poiché CWndClassInfo gestisce le informazioni per una sola classe della finestra, ogni finestra creata tramite un'istanza di CWindowImpl è basata sulla stessa classe della finestra.

CWindowImpl supporta inoltre la creazione di una sottoclassi della finestra. Il metodo SubclassWindow associa una finestra esistente all'oggetto CWindowImpl e modifica la routine della finestra in CWindowImpl::WindowProc. Ogni istanza di CWindowImpl può creare una sottoclasse di una finestra diversa.

Nota

Per un dato oggetto CWindowImpl, chiamare Crea oppure SubclassWindow.Non invocare entrambi i metodi sullo stesso oggetto.

Oltre a CWindowImpl, ATL fornisce CContainedWindow per creare una finestra contenuta in un altro oggetto.

Il distruttore della classe base (~CWindowImplRoot) assicura che la finestra venga rimossa prima che l'oggetto venga distrutto.

CWindowImpl deriva da CWindowImplBaseT, che deriva da CWindowImplRoot, che deriva da TBase e CMessageMap.

Per ulteriori informazioni su

Vedere

Creazione di controlli

Tutorial di ATL

Usare le finestre in ATL

Classi di finestra ATL

Creazione guidata progetto ATL

Creazione di un progetto ATL

Gerarchia di ereditarietà

CMessageMap

TBase

CWindowImplRoot

CWindowImplBaseT

CWindowImpl

Requisiti

Intestazione: atlwin.h

Vedere anche

Riferimenti

BEGIN_MSG_MAP

CComControl Class

Altre risorse

ATL Class Overview