CWindowImpl, classe
Fournit des méthodes pour la création ou le sous-classement une fenêtre.
Important
Cette classe et ses membres ne peuvent pas être utilisés dans des applications qui s'exécutent dans Windows Runtime.
template <
class T,
class TBase= CWindow,
class TWinTraits= CControlWinTraits
>
class ATL_NO_VTABLE CWindowImpl :
public CWindowImplBaseT< TBase, TWinTraits>
Paramètres
T
Votre nouvelle classe, dérivée de CWindowImpl.TBase
La classe de base de votre classe. Par défaut, la classe de base est CWindow.TWinTraits
Une classe traits 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 du message par défaut. |
|
Retourne le message actuel. |
|
Retourne la procédure de fenêtre active. |
|
Appelé après le dernier message est reçu (généralement WM_NCDESTROY). |
|
sous-classement d'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 des informations de classe de fenêtre. |
|
Traite les messages envoyés à la fenêtre. |
Membres de données
Pointe vers la procédure de fenêtre d'origine de la classe de fenêtre. |
Notes
Utilisez CWindowImpl pour créer une fenêtre ou une sous-classe d'une fenêtre existante. la procédure de fenêtre CWindowImpl utilise une table des messages pour exécuter les messages aux gestionnaires appropriés.
CWindowImpl::Create crée une fenêtre selon les informations de classe de fenêtre gérées par CWndClassInfo. CWindowImpl contient la macro DECLARE_WND_CLASS, qui signifie que CWndClassInfo enregistre une nouvelle classe de fenêtre. Si vous souhaitez surclasser une classe de fenêtre existante, dérivez votre classe de CWindowImpl et incluez la macro de DECLARE_WND_SUPERCLASS. Dans ce cas, CWndClassInfo signale une classe de fenêtre basée 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
Notes
Comme CWndClassInfo gère les informations pour une seule classe de fenêtre, chaque fenêtre créée via une instance CWindowImpl est basé sur la même classe de fenêtre.
CWindowImpl prend également en charge le sous-classement de fenêtre. La méthode SubclassWindow attaché une fenêtre existante à l'objet CWindowImpl et modifie la procédure de fenêtre en CWindowImpl::WindowProc. Chaque instance de CWindowImpl peut fournir la sous-classe une autre fenêtre.
Notes
Pour tout objet CWindowImpl donné, appelez Créer ou SubclassWindow.N'appelez pas les deux méthodes sur le même objet.
En plus de CWindowImpl, ATL fournit CContainedWindow pour créer une fenêtre qui est contenue dans un autre objet.
Le destructeur de classe de base (~CWindowImplRoot) garantit que la fenêtre est partie avant que l'objet soit détruit.
CWindowImpl dérive de CWindowImplBaseT, qui dérive de CWindowImplRoot, qui dérive de TBase et CMessageMap.
Pour plus d'informations sur le sujet suivant |
Consultez |
---|---|
Créer des contrôles |
|
Utilisation des fenêtres dans ATL |
|
Assistant Projet ATL |
Hiérarchie d'héritage
TBase
CWindowImplRoot
CWindowImplBaseT
CWindowImpl
Configuration requise
En-tête: afxwin.h