Partager via


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

CWindowImpl::Create

Crée une fenêtre.

Méthodes de CWindowImplBaseT

DefWindowProc

Fournit le traitement du message par défaut.

GetCurrentMessage

Retourne le message actuel.

GetWindowProc

Retourne la procédure de fenêtre active.

OnFinalMessage

Appelé après le dernier message est reçu (généralement WM_NCDESTROY).

SubclassWindow

sous-classement d'une fenêtre.

UnsubclassWindow

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

Méthodes statiques

GetWndClassInfo

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

WindowProc

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

Membres de données

m_pfnSuperWindowProc

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

Didacticiel ATL

Utilisation des fenêtres dans ATL

ATL, classes de fenêtre

Assistant Projet ATL

Création d'un projet ATL

Hiérarchie d'héritage

CMessageMap

TBase

CWindowImplRoot

CWindowImplBaseT

CWindowImpl

Configuration requise

En-tête: afxwin.h

Voir aussi

Référence

BEGIN_MSG_MAP

CComControl, classe

Autres ressources

Vue d'ensemble de la classe ATL