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 |
---|---|
Crea una finestra. |
Metodi di CWindowImplBaseT
Fornisce l'elaborazione dei messaggi predefinita. |
|
Restituisce il messaggio corrente. |
|
Restituisce la routine della finestra corrente. |
|
Chiamata dopo aver ricevuto l'ultimo messaggio (in genere WM_NCDESTROY). |
|
Crea una sottoclasse di una finestra. |
|
Ripristina una finestra precedentemente impostata come sottoclasse. |
Metodi statici
Restituisce un'istanza static di CWndClassInfo, che gestisce le informazioni sulla classe della finestra. |
|
Elabora i messaggi inviati alla finestra. |
Membri di dati
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 |
|
Usare le finestre in ATL |
|
Creazione guidata progetto ATL |
Gerarchia di ereditarietà
TBase
CWindowImplRoot
CWindowImplBaseT
CWindowImpl
Requisiti
Intestazione: atlwin.h