Partilhar via


Classe de CContainedWindowT

Essa classe implementa uma janela contida dentro de outro objeto.

Importante

Essa classe e seus membros não podem ser usados em aplicativos executados em tempo de execução do windows.

template < 
class TBase= CWindow, 
class TWinTraits= CControlWinTraits  
> 
class CContainedWindowT : 
public TBase

Parâmetros

  • TBase
    A classe base da sua classe. a classe base padrão é CWindow.

  • TWinTraits
    Os traços classe que define estilos para a janela. O padrão é CControlWinTraits.

Dica

CContainedWindow é uma especialização de CContainedWindowT.Se você desejar alterar a classe base ou os traços, use CContainedWindowT diretamente.

Membros

Construtores public

Nome

Descrição

CContainedWindowT::CContainedWindowT

Construtor. Inicializa todos os membros de dados para especificar que o mapa de mensagem irá processar as mensagens de janela contida.

Métodos públicos

Nome

Descrição

CContainedWindowT::Create

Cria uma janela.

CContainedWindowT::DefWindowProc

Fornece o processamento de mensagem padrão.

CContainedWindowT::GetCurrentMessage

Retorna a mensagem atual.

CContainedWindowT::RegisterWndSuperclass

Registra a classe da janela da janela contida.

CContainedWindowT::SubclassWindow

Subclasses uma janela.

CContainedWindowT::SwitchMessageMap

Alterações que o mapa de mensagem é usado para processar as mensagens de janela contida.

CContainedWindowT::UnsubclassWindow

Restaura uma janela anteriormente tenha sido derivado.

CContainedWindowT::WindowProc

(Static) Processa as mensagens enviadas para a janela contida.

Membros públicos de dados

Nome

Descrição

CContainedWindowT::m_dwMsgMapID

Identifica que o mapa de mensagem irá processar as mensagens de janela contida.

CContainedWindowT::m_lpszClassName

Especifica o nome de uma classe existente da janela até que uma classe de nova janela será base.

CContainedWindowT::m_pfnSuperWindowProc

Aponta para o procedimento de janela original da classe de janela.

CContainedWindowT::m_pObject

Aponta para o objeto contêiner.

Comentários

CContainedWindowT implementa uma janela contida dentro de outro objeto. O procedimento da janela de CContainedWindowT usa um mapa de mensagem no objeto contêiner para mensagens diretas para manipuladores apropriadas. Quando construir um objeto de CContainedWindowT , você especifica que o mapa de mensagem deve ser usado.

CContainedWindowT permite que você crie uma nova janela superclassing uma classe existente da janela. O método de Criar registra uma classe de janela que é baseada em uma classe existente mas em CContainedWindowT::WindowProcusa. Criar então cria uma janela com base em essa classe da nova janela. Cada instância de CContainedWindowT enlata superclass uma classe diferente da janela.

CContainedWindowT também oferece suporte a janela que subclassing. O método de SubclassWindow anexa uma janela existente ao objeto de CContainedWindowT e altera o procedimento da janela CContainedWindowT::WindowProc. Cada instância de CContainedWindowT enlata a subclasse uma janela diferente.

Dica

Para qualquer dado objeto de CContainedWindowT , chame Criar ou SubclassWindow.Você não deve chamar ambos os métodos no mesmo objeto.

Quando você usa a opção de Add control based on no assistente de projeto de ATL, o assistente automaticamente adicionará um membro de dados de CContainedWindowT a classe que implementa o controle. O exemplo a seguir mostra como a janela contida é declarada:

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;
}

Para obter mais informações

Consulte

Criando controles

Tutorial de ATL

Usando o windows em ATL

Classes da janela de ATL

Assistente de projeto de ATL

Criando um projeto de ATL

Windows

Janelas e tópicos posteriores em Windows SDK

Hierarquia de herança

TBase

CContainedWindowT

Requisitos

Cabeçalho: atlwin.h

Consulte também

Referência

Classe de CWindow

Classe de CWindowImpl

Classe de CMessageMap

BEGIN_MSG_MAP

ALT_MSG_MAP

Outros recursos

Visão geral da classe de ATL