Classe di CWindowImpl

Questa classe fornisce metodi per la creazione o la creazione di una sottoclasse di una finestra.

Nota importanteImportante

Questa classe e i relativi membri non possono essere utilizzati nelle 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 classe, derivata da CWindowImpl.

  • TBase
    La classe base della nuova classe.La classe base predefinita è CWindow.

  • TWinTraits
    classe di tratti che definisce gli stili per la finestra.Il valore predefinito è CControlWinTraits.

Membri

h4616bh2.collapse_all(it-it,VS.110).gifMetodi pubblici

Nome

Descrizione

CWindowImpl::Create

Crea una finestra.

h4616bh2.collapse_all(it-it,VS.110).gifMetodi di CWindowImplBaseT

DefWindowProc

Fornisce l'elaborazione dei messaggi predefinito.

GetCurrentMessage

Restituisce il messaggio corrente.

GetWindowProc

Restituisce la routine della finestra.

OnFinalMessage

Chiamata dopo la ricezione del messaggio ultimo (in genere WM_NCDESTROY).

SubclassWindow

Rappresenta una sottoclasse di una finestra.

UnsubclassWindow

Ripristina una finestra precedentemente impostata come sottoclasse.

h4616bh2.collapse_all(it-it,VS.110).gifMetodi statici

GetWndClassInfo

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

WindowProc

Elabora i messaggi inviati alla finestra.

h4616bh2.collapse_all(it-it,VS.110).gifMembri di dati

m_pfnSuperWindowProc

Punta alla routine della finestra della classe finestra.

Note

CWindowImpl consente di creare una nuova finestra o una sottoclasse di una finestra esistente.La routine della finestra di CWindowImpl utilizza una mappa messaggi per indirizzare i messaggi ai gestori appropriati.

CWindowImpl::Create crea una nuova finestra in base alle informazioni della classe della finestra gestite da CWndClassInfo.CWindowImpl contiene la macro DECLARE_WND_CLASS, che significa che CWndClassInfo registrata una nuova classe della finestra.Se si desidera rendere superclasse a una classe finestra esistente, derivare la classe da CWindowImpl e includere una macro DECLARE_WND_SUPERCLASS.In questo caso, CWndClassInfo registrata una classe finestra basata su una classe esistente ma utilizza CWindowImpl::WindowProc.Di seguito è riportato un 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 singola classe della finestra, ogni finestra creata tramite un'istanza CWindowImpl sarà basata sulla stessa classe della finestra.

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

[!NOTA]

Per un dato oggetto CWindowImpl, chiamare Crea o SubclassWindow.Non è necessario chiamare entrambi i metodi nello stesso oggetto.

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

Il distruttore della classe base (~)CWindowImplRootgarantisce che la finestra è stata rimossa prima che venga eliminato.

CWindowImpl deriva da CWindowImplBaseT, che deriva da CWindowImplRoot, che a sua volta deriva da TBase e da CMessageMap.

Per ulteriori informazioni su

Vedere

Creazione di controlli

L'esercitazione ATL

Utilizzando le finestre in ATL

Classi di finestre ATL

Creazione guidata progetto ATL

Creazione di un progetto ATL

Windows

Sulle procedure di Windows

Gerarchia di ereditarietà

CMessageMap

TBase

CWindowImplRoot

CWindowImplBaseT

CWindowImpl

Requisiti

Header: atlwin.h

Vedere anche

Riferimenti

BEGIN_MSG_MAP

Classe di CComControl

Altre risorse

I cenni preliminari sulle classi ATL