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.
Observação |
---|
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 |
---|---|
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 |
---|---|
Cria uma janela. |
|
Fornece o processamento de mensagem padrão. |
|
Retorna a mensagem atual. |
|
Registra a classe da janela da janela contida. |
|
Subclasses uma janela. |
|
Alterações que o mapa de mensagem é usado para processar as mensagens de janela contida. |
|
Restaura uma janela anteriormente tenha sido derivado. |
|
(Static) Processa as mensagens enviadas para a janela contida. |
Membros públicos de dados
Nome |
Descrição |
---|---|
Identifica que o mapa de mensagem irá processar as mensagens de janela contida. |
|
Especifica o nome de uma classe existente da janela até que uma classe de nova janela será base. |
|
Aponta para o procedimento de janela original da classe de janela. |
|
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.
Observação |
---|
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 |
|
Usando o windows em ATL |
|
Assistente de projeto de ATL |
|
Windows |
Janelas e tópicos posteriores em Windows SDK |
Hierarquia de herança
TBase
CContainedWindowT
Requisitos
Cabeçalho: atlwin.h