Partager via


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

h4616bh2.collapse_all(fr-fr,VS.110).gifMéthodes publiques

Nom

Description

CWindowImpl::Create

Crée une fenêtre.

h4616bh2.collapse_all(fr-fr,VS.110).gifMéthodes de CWindowImplBaseT

DefWindowProc

Fournit le traitement des messages par défaut.

GetCurrentMessage

Retourne le message actuel.

GetWindowProc

Retourne la procédure de fenêtre active.

OnFinalMessage

Appelé après avoir reçu le dernier message (en général WM_NCDESTROY).

SubclassWindow

Sous-classes une fenêtre.

UnsubclassWindow

Restaure une fenêtre précédemment sous-classée.

h4616bh2.collapse_all(fr-fr,VS.110).gifMéthodes statiques

GetWndClassInfo

Retourne une instance statique de CWndClassInfo, qui gère les informations de classe de fenêtre.

WindowProc

Traite les messages envoyés à la fenêtre.

h4616bh2.collapse_all(fr-fr,VS.110).gifMembres de données

m_pfnSuperWindowProc

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

Didacticiel ATL

À l'aide de windows dans ATL

Classes de fenêtres ATL

L'Assistant Projet ATL

Création d'un projet ATL

Windows

Sur les procédures de fenêtres

Hiérarchie d'héritage

CMessageMap

TBase

CWindowImplRoot

CWindowImplBaseT

CWindowImpl

Configuration requise

Header: atlwin.h

Voir aussi

Référence

BEGIN_MSG_MAP

Classe de CComControl

Autres ressources

Vue d'ensemble de la classe ATL