Partilhar via


Como usar janelas independentes

A ATL implementa janelas independentes com CContainedWindowT. Uma janela independente representa uma janela que delega suas mensagens a um objeto de contêiner em vez de tratá-las em sua própria classe.

Observação

Você não precisa derivar uma classe de CContainedWindowT para usar janelas independentes.

Nas janelas independentes, você pode transformar em superclasse uma classe de janela existente ou em classe uma subclasse de uma janela existente. Para criar uma janela que transforma em superclasse uma classe de janela existente, primeiro especifique o nome da classe existente no construtor para o objeto CContainedWindowT. Em seguida, chame CContainedWindowT::Create. Para transformar em subclasse uma janela existente, você não precisa especificar um Nome de classe de janela (passe NULL para o construtor). Basta chamar o método CContainedWindowT::SubclassWindow com o identificador para a janela que está sendo transformada em subclasse.

Normalmente, você usa janelas independentes como membros de dados de uma classe de contêiner. O contêiner não precisa ser uma janela; no entanto, ele deve derivar de CMessageMap.

Uma janela independente pode usar mapas de mensagens alternativos para lidar com suas mensagens. Se você tiver mais de uma janela independente, deverá declarar vários mapas de mensagens alternativos, cada um correspondente a uma janela independente separada.

Exemplo

Veja a seguir um exemplo de uma classe de contêiner com duas janelas independentes:

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 obter mais informações sobre janelas independentes, veja o exemplo SUBEDIT.

Confira também

Classes de janela