Partager via


Classe de CContainedWindowT

Cette classe implémente une fenêtre contenue dans un autre objet.

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 TBase= CWindow,
class TWinTraits= CControlWinTraits 
>
class CContainedWindowT :
public TBase

Paramètres

  • TBase
    La classe de base de votre nouvelle classe.La classe de base par défaut est CWindow.

  • TWinTraits
    Une classe Ctraits qui définit des styles pour votre fenêtre.La valeur par défaut est CControlWinTraits.

[!REMARQUE]

CContainedWindow est une spécialisation d' CContainedWindowT.Si vous souhaitez modifier la classe de base ou caractéristiques, utilisez CContainedWindowT directement.

Membres

9e286yks.collapse_all(fr-fr,VS.110).gifConstructeurs publics

Nom

Description

CContainedWindowT::CContainedWindowT

Constructeur.Initialise les données membres pour spécifier la table des messages traitera les messages de la fenêtre contenue.

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

Nom

Description

CContainedWindowT::Create

Crée une fenêtre.

CContainedWindowT::DefWindowProc

Fournit le traitement des messages par défaut.

CContainedWindowT::GetCurrentMessage

Retourne le message actuel.

CContainedWindowT::RegisterWndSuperclass

Stocke la classe de fenêtre de la fenêtre contenue.

CContainedWindowT::SubclassWindow

Sous-classes une fenêtre.

CContainedWindowT::SwitchMessageMap

Remplace la table des messages est utilisée pour traiter les messages de la fenêtre contenue.

CContainedWindowT::UnsubclassWindow

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

CContainedWindowT::WindowProc

(Statique) traite les messages envoyés à la fenêtre contenue.

9e286yks.collapse_all(fr-fr,VS.110).gifDonnées membres publiques

Nom

Description

CContainedWindowT::m_dwMsgMapID

Identifie la table des messages traitera les messages de la fenêtre contenue.

CContainedWindowT::m_lpszClassName

Spécifie le nom d'une classe de fenêtre existante sur laquelle une nouvelle classe de fenêtre est basée.

CContainedWindowT::m_pfnSuperWindowProc

Points à la procédure de fenêtre d'origine de la classe de fenêtre.

CContainedWindowT::m_pObject

Pointe vers l'objet contenant.

Notes

CContainedWindowT implémente une fenêtre contenue dans un autre objet.Utilisations de la procédure de fenêtre d'CContainedWindowT une table des messages dans l'objet contenant des messages directs aux gestionnaires appropriés.Lorsque vous construisez un objet d' CContainedWindowT , vous spécifiez la table des messages doit être utilisée.

CContainedWindowT vous permet de créer une nouvelle fenêtre par superclassing une classe de fenêtre existante.La méthode de Créer enregistre tout d'abord une classe de fenêtre qui est basé sur une classe existante mais utilise CContainedWindowT::WindowProc.Créer crée ensuite une fenêtre sur cette nouvelle classe de fenêtre.Chaque instance d' CContainedWindowT peuvent surclassement la une classe de fenêtre différente.

CContainedWindowT prend également en charge le sous-classement de fenêtre.La méthode d' SubclassWindow attaché une fenêtre existante à l'objet d' CContainedWindowT et modifie la procédure de fenêtre par CContainedWindowT::WindowProc.Chaque instance d' CContainedWindowT peuvent la sous-classe une autre fenêtre.

[!REMARQUE]

Pour tout objet donné d' CContainedWindowT , appelez Créer ou SubclassWindow.Vous ne devez pas appeler les deux méthodes sur le même objet.

Lorsque vous utilisez l'option pour Add control based on dans l'Assistant Projet ATL, l'assistant ajoute automatiquement une donnée membre d' CContainedWindowT à la classe implémentant le contrôle.l'exemple suivant montre comment la fenêtre contenue est déclarée :

public:
   // Declare a contained window data member
   CContainedWindow m_ctlEdit;

   // Initialize the contained window:
   // 1. Pass "Edit" to specify that the contained 
   //    window should be based on the standard 
   //    Windows Edit box
   // 2. Pass 'this' pointer to specify that CAtlEdit 
   //    contains the message map to be used for the 
   //    contained window's message processing
   // 3. Pass the identifier of the message map. '1'
   //    identifies the alternate message map declared
   //    with ALT_MSG_MAP(1)
   CAtlEdit()
      : m_ctlEdit(_T("Edit"), this, 1)
   {
      m_bWindowOnly = TRUE;
   }
// Declare the default message map, identified by '0'
BEGIN_MSG_MAP(CAtlEdit)
   MESSAGE_HANDLER(WM_CREATE, OnCreate)
   MESSAGE_HANDLER(WM_SETFOCUS, OnSetFocus)
   CHAIN_MSG_MAP(CComControl<CAtlEdit>)
// Declare an alternate message map, identified by '1'
ALT_MSG_MAP(1)
   MESSAGE_HANDLER(WM_CHAR, OnChar)
END_MSG_MAP()
// Define OnCreate handler
// When the containing window receives a WM_CREATE
// message, create the contained window by calling
// CContainedWindow::Create
LRESULT OnCreate(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, 
   BOOL& /*bHandled*/)
{
   RECT rc;
   GetWindowRect(&rc);
   rc.right -= rc.left;
   rc.bottom -= rc.top;
   rc.top = rc.left = 0;
   m_ctlEdit.Create(m_hWnd, rc, _T("hello"), WS_CHILD | WS_VISIBLE | 
      ES_MULTILINE | ES_AUTOVSCROLL);
   return 0;
}

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

fenêtres et sujets suivants dans Kit de développement logiciel Windows

Hiérarchie d'héritage

TBase

CContainedWindowT

Configuration requise

Header: atlwin.h

Voir aussi

Référence

Classe de CWindow

Classe de CWindowImpl

Classe de CMessageMap

BEGIN_MSG_MAP

ALT_MSG_MAP

Autres ressources

Vue d'ensemble de la classe ATL