Classe di CWindowImpl
Questa classe fornisce metodi per la creazione o la creazione di una sottoclasse di una finestra.
Importante |
---|
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
Metodi pubblici
Nome |
Descrizione |
---|---|
Crea una finestra. |
Metodi di CWindowImplBaseT
Fornisce l'elaborazione dei messaggi predefinito. |
|
Restituisce il messaggio corrente. |
|
Restituisce la routine della finestra. |
|
Chiamata dopo la ricezione del messaggio ultimo (in genere WM_NCDESTROY). |
|
Rappresenta una sottoclasse di una finestra. |
|
Ripristina una finestra precedentemente impostata come sottoclasse. |
Metodi statici
Restituisce un'istanza static CWndClassInfo, che gestisce le informazioni sulla classe della finestra. |
|
Elabora i messaggi inviati alla finestra. |
Membri di dati
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 |
|
Utilizzando le finestre in ATL |
|
Creazione guidata progetto ATL |
|
Windows |
Gerarchia di ereditarietà
TBase
CWindowImplRoot
CWindowImplBaseT
CWindowImpl
Requisiti
Header: atlwin.h