Classe de CWindowImpl
Cette classe fournit des méthodes pour créer ou sous-classement une fenêtre.
Important
Cette classe et ses membres ne peuvent pas être utilisés dans les applications qui s'exécutent dans les fenêtres d'exécution.
template <
class T,
class TBase= CWindow,
class TWinTraits= CControlWinTraits
>
class ATL_NO_VTABLE CWindowImpl :
public CWindowImplBaseT< TBase, TWinTraits>
Paramètres
T
Votre classe, dérivée de CWindowImpl.TBase
La classe de base de votre nouvelle classe.La classe de base par défaut est CWindow.TWinTraits
classe Ctraits qui définit des styles pour votre fenêtre.La valeur par défaut est CControlWinTraits.
Membres
Méthodes publiques
Nom |
Description |
---|---|
Crée une fenêtre. |
Méthodes de CWindowImplBaseT
Fournit le traitement des messages par défaut. |
|
Retourne le message actuel. |
|
Retourne la procédure de fenêtre active. |
|
Appelé après avoir reçu le dernier message (en général WM_NCDESTROY). |
|
Sous-classes une fenêtre. |
|
Restaure une fenêtre précédemment sous-classée. |
Méthodes statiques
Retourne une instance statique de CWndClassInfo, qui gère les informations de classe de fenêtre. |
|
Traite les messages envoyés à la fenêtre. |
Membres de données
Points à la procédure de fenêtre d'origine de la classe de fenêtre. |
Notes
CWindowImpl vous permet de créer une fenêtre ou une sous-classe une fenêtre existante.La procédure de fenêtre d'CWindowImpl utilise une table des messages pour exécuter des messages aux gestionnaires appropriés.
CWindowImpl::Create crée une nouvelle fenêtre selon les informations de classe de fenêtre gérées par CWndClassInfo.CWindowImpl contient la macro de DECLARE_WND_CLASS , ce qui signifie qu' CWndClassInfo stockera une nouvelle classe de fenêtre.Si vous souhaitez à la surclassement une classe de fenêtre existante, dérivez votre classe d' CWindowImpl et incluez la macro de DECLARE_WND_SUPERCLASS .Dans ce cas, CWndClassInfo stockera une classe de fenêtre qui est basé sur une classe existante mais utilise CWindowImpl::WindowProc.Par exemple :
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
[!REMARQUE]
Étant donné qu' CWndClassInfo gère les informations relatives à une classe de guichet unique, chaque fenêtre créée via une instance d' CWindowImpl sera selon la même classe de fenêtre.
CWindowImpl prend également en charge le sous-classement de fenêtre.La méthode d' SubclassWindow attaché une fenêtre existante à l'objet d' CWindowImpl et modifie la procédure de fenêtre par CWindowImpl::WindowProc.Chaque instance d' CWindowImpl peuvent la sous-classe une autre fenêtre.
[!REMARQUE]
Pour tout objet donné d' CWindowImpl , appelez Créer ou SubclassWindow.Vous ne devez pas appeler les deux méthodes sur le même objet.
En plus de CWindowImpl, ATL fournit CContainedWindow pour créer une fenêtre contenue dans un autre objet.
Le destructeur de classe de base (|CWindowImplRoot) garantit que la fenêtre est allée avant que l'objet soit détruit.
CWindowImpl dérive de CWindowImplBaseT, qui dérive de CWindowImplRoot, qui dérive de TBase et de CMessageMap.
Pour plus d'informations sur le sujet suivant |
Consultez |
---|---|
Créer des contrôles |
|
À l'aide de windows dans ATL |
|
L'Assistant Projet ATL |
|
Windows |
Hiérarchie d'héritage
TBase
CWindowImplRoot
CWindowImplBaseT
CWindowImpl
Configuration requise
Header: atlwin.h