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 |
---|---|
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.
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 |
|
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