Compartir a través de


Using Contained Windows

ATL implementa las ventanas incluidas con CContainedWindowT. Una ventana que representa una ventana que delega sus mensajes a un objeto contenedor en lugar de administrarlos en su propia clase.

Nota

No necesita derivar una clase de CContainedWindowT para utilizar las ventanas incluidas.

Con las ventanas contenidas, puede crear utiliza una clase existente de Windows o crear subclases de una ventana existente. Para crear una ventana que utiliza una clase existente de Windows, primero especifique el nombre de clase existente en el constructor del objeto de CContainedWindowT . A continuación llamada CContainedWindowT::Create. Para crear subclases de una ventana existente, no es necesario especificar un nombre de clase de Windows (paso NULL al constructor). Llamar al método de CContainedWindowT::SubclassWindow con el identificador de la ventana que se subclases.

Normalmente utiliza las ventanas incluidas como miembros de datos de una clase de contenedor. el contenedor no necesita ser una ventana; sin embargo, debe derivar de CMessageMap.

Una ventana contenida puede utilizar mapas alternativos de mensajes para controlar sus mensajes. Si tiene más de una ventana contenida, debe declarar varios mapas alternativos de mensajes, cada correspondiente a una ventana contenida independiente.

Ejemplo

A continuación se muestra un ejemplo de una clase contenedora con dos ventanas contenidas:

class CMyContainer : public CMessageMap
{
public:
   CContainedWindow m_wndEdit;
   CContainedWindow m_wndList;

   CMyContainer() : m_wndEdit(_T("Edit"), this, 1), 
                    m_wndList(_T("List"), this, 2)
   {
   }

   BEGIN_MSG_MAP(CMyContainer)
   ALT_MSG_MAP(1)
      // handlers for the Edit window go here
   ALT_MSG_MAP(2)
      // handlers for the List window go here
   END_MSG_MAP()

};

Para obtener más información sobre las ventanas contenidas, vea el ejemplo de SUBEDIT .

Vea también

Otros recursos

Clases de ventanas de ATL