mode&lo lt; classeTBase= CWindow, classeTWinTraits = &Gt CControlWinTraits;
Classe CContainedWindowT: TBase pública
Parâmetros
TBase
A classe base de sua nova classe. A classe de base padrão é CWindow.
TWinTraits
Uma classe de características que define estilos para a sua janela. O padrão é CControlWinTraits.
&Nota nbsp; CContainedWindow é uma especialização de CContainedWindowT. Se você deseja alterar a classe base ou traços, use CContainedWindowT diretamente.
CContainedWindow implementa uma janela contida em outro objeto. CContainedWindowdo procedimento de janela usa um mapa da mensagem no objeto de recipiente para direcionar mensagens para os manipuladores apropriados. Ao construir um objeto de CContainedWindow , você especifica qual Mapa da mensagem deve ser usado.
CContainedWindow permite que você criar uma nova janela por superclassing uma classe de janela existente. O método de criar primeiro registra uma classe de janela que se baseia em uma classe existente, mas usa CContainedWindow:: WindowProc. Criar , em seguida, cria uma janela com base neste novo janela classe. Cada instância de CContainedWindow pode superclasse uma classe de janela diferente.
CContainedWindow também oferece suporte a subclassificação de janela. O método SubclassWindow anexa uma janela existente para o objeto de CContainedWindow e altera o procedimento de janela para CContainedWindow:: WindowProc. Cada instância de CContainedWindow pode subclasse outra janela.
&Notanbsp; Para qualquer dado objeto de CContainedWindow , chamada o criar ou SubclassWindow. Você não deve chamar os dois métodos no mesmo objeto.
Quando você usar a opção de Adicionar controle baseado em do Assistente de objeto ATL, o assistente adicionará automaticamente um membro de dados CContainedWindow à classe de implementação do Controlarar. O exemplo a seguir é tirado do SUBEDIT exemplo e mostra como a janela contida é declarada
class CAtlEdit : ...
{
public:
// Declare a contained window data member
CContainedWindow m_EditCtrl;
// 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_EditCtrl(_T("EDIT"), this, 1)
{
m_bWindowOnly = TRUE;
}
// Declare the default message map,
// identified by '0'
BEGIN_MSG_MAP(CAtlEdit)
...
MESSAGE_HANDLER(WM_CREATE, OnCreate)
...
// 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)
{
...
m_EditCtrl.Create(m_hWnd, rc, _T("hello"),
WS_CHILD | WS_VISIBLE |
ES_MULTILINE | ES_AUTOVSCROLL);
return 0;
}
...
};
| Para obter mais informações sobre | Consulte |
| Criando controles | Tutorial ATL |
| Using windows in ATL | Classes de janela do ATL |
| Assistente de objeto ATL | Criando um projeto ATL |
| Windows | Windows e os tópicos subseqüentes a Plataforma SDK |
| Subclassificação | Subclassificação do procedimento de janela no plataforma SDK |
| Superclassing | Janela procedimento Superclassing in the plataforma SDK |
# include lt;atlwin.h>
Ver também
CWindow, CWindowImpl, CMessageMap, BEGIN_MSG_MAP, ALT_MSG_MAP