modello lt; classeTclasseTBase= CWindow, classeTWinTraits= CControlWinTraits >
classe CWindowImpl ATL_NO_VTABLE: CWindowImplBaseT pubblico < TBase, TWinTraits >
Parametri
T
La classe derivata da CWindowImpl.
TBase
La classe base della nuova classe. La classe di base predefinita è CWindow.
TWinTrait
Una classe di tratti che definisce gli stili per la finestra. Il valore predefinito è CControlWinTraits.
CWindowImpl consente di creare una nuova finestra o sottoclasse una finestra esistente. CWindowImpldi routine della finestra utilizza una mappa messaggi per dirigere i messaggi ai gestori appropriati.
CWindowImpl::Create crea una nuova finestra sulla base delle informazioni di classe finestra gestite da CWndClassInfo. CWindowImpl contiene la macro DECLARE_WND_CLASS , che significa che CWndClassInfo registrerà una nuova classe finestra. Se si desidera superclasse una classe di finestra esistente, derivare la classe da CWindowImpl e comprendono la macro DECLARE_WND_SUPERCLASS . In questo caso, CWndClassInfo registrerà una classe della finestra che si basa su una classe esistente ma utilizza CWindowImpl::WindowProc. Ad esempio
classe CMyWindow: CComControllt;CMyWindow >,...
/ / CComControl deriva da CWindowImpl
{
pubblica:
// 1. Il parametro NULL significa ATL genererà un
/ / nome per la superclasse
// 2. Il parametro "EDIT" significa che la superclasse è
/ / basato sulla casella Edit Windows standard
DECLARE_WND_SUPERCLASS (NULL, "MODIFICA")
...
};
&Notanbsp; Perché CWndClassInfo gestisce le informazioni per una classe unica finestra, ogni finestra creata tramite un'istanza della CWindowImpl sarà basato sulla stessa classe finestra.
CWindowImpl supporta anche la creazione di sottoclassi finestra. Il metodo SubclassWindow attribuisce una finestra esistente all'oggetto CWindowImpl e cambia la routine della finestra a CWindowImpl::WindowProc. Ogni istanza di CWindowImpl può sottoclasse di un'altra finestra.
&Notanbsp; Per qualsiasi oggetto specificato CWindowImpl , chiamare Create o SubclassWindow. Non si devono richiamare entrambi i metodi sullo stesso oggetto.
Oltre a CWindowImpl, ATL fornisce CContainedWindow per creare una finestra contenuta all'interno di un altro oggetto.
Il distruttore della classe base (~CWindowImplRoot) assicura che la finestra è andata prima che l'oggetto viene eliminato.
CWindowImpl deriva da CWindowImplBaseT, che deriva da CWindowImplRoot, che a sua volta deriva da TBase e CMessageMap.
| Per ulteriori informazioni su | Vedere |
| Creazione di controlli | ATL Tutorial |
| Utilizzando windows in ATL | Classi di finestre ATL |
| Creazione guidata oggetto | Creazione di un progetto ATL |
| Windows | Windows e argomenti successivi in Platform SDK |
| Creazione di una sottoclasse | Finestra procedura Subclassing in Platform SDK |
| Creazione di superclassi | Creazione di procedura superclassi finestra in Platform SDK |
# include lt;atlwin.h>
Vedi anche