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
Constructeurs publics
Nom |
Description |
---|---|
Constructeur.Initialise les données membres pour spécifier la table des messages traitera les messages de la fenêtre contenue. |
Méthodes publiques
Nom |
Description |
---|---|
Crée une fenêtre. |
|
Fournit le traitement des messages par défaut. |
|
Retourne le message actuel. |
|
Stocke la classe de fenêtre de la fenêtre contenue. |
|
Sous-classes une fenêtre. |
|
Remplace la table des messages est utilisée pour traiter les messages de la fenêtre contenue. |
|
Restaure une fenêtre précédemment sous-classée. |
|
(Statique) traite les messages envoyés à la fenêtre contenue. |
Données membres publiques
Nom |
Description |
---|---|
Identifie la table des messages traitera les messages de la fenêtre contenue. |
|
Spécifie le nom d'une classe de fenêtre existante sur laquelle une nouvelle classe de fenêtre est basée. |
|
Points à la procédure de fenêtre d'origine de la classe de fenêtre. |
|
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 |
|
À l'aide de windows dans ATL |
|
L'Assistant 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