Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Observação
A ATL (Biblioteca de Modelos Ativos) continua com suporte. No entanto, não estamos mais adicionando recursos ou atualizando a documentação.
A ATL implementa janelas independentes com CContainedWindowT. Uma janela confinada 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.
Com janelas contidas, você pode criar uma superclasse a partir de uma classe de janela existente ou criar uma subclasse a partir 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 da janela que está sendo subclassificada.
Normalmente, você usa janelas contidas 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 contidas, veja o exemplo SUBEDIT.