Classe de CWindowImpl
Fornece métodos para criar ou subclassing uma janela.
Importante
Essa classe e seus membros não podem ser usados em aplicativos que executam em Tempo de Execução do Windows.
template <
class T,
class TBase= CWindow,
class TWinTraits= CControlWinTraits
>
class ATL_NO_VTABLE CWindowImpl :
public CWindowImplBaseT< TBase, TWinTraits>
Parâmetros
T
A nova classe, derivado de CWindowImpl.TBase
A classe base de sua classe. Por padrão, a classe base é CWindow.TWinTraits
classe dos traços que define estilos para a janela. O padrão é CControlWinTraits.
Membros
Métodos Públicos
Nome |
Descrição |
---|---|
Cria uma janela. |
Métodos de CWindowImplBaseT
Fornece o processamento de mensagem padrão. |
|
Retorna a mensagem atual. |
|
Retorna o procedimento de janela atual. |
|
Chamado após a mensagem a última é recebido (normalmente WM_NCDESTROY). |
|
Subclasses uma janela. |
|
Restaura uma janela anteriormente tenha sido derivado. |
Métodos estáticos
Retorna uma instância de CWndClassInfoestático, que gerencia informações de classe de janela. |
|
Processa as mensagens enviadas para a janela. |
Membros de dados
Aponta para o procedimento de janela original da classe de janela. |
Comentários
Você pode usar CWindowImpl para criar uma janela ou uma subclasse uma janela existente. o procedimento de janela de CWindowImpl usa um mapa de mensagem para direcionar mensagens para manipuladores apropriadas.
CWindowImpl::Create cria uma janela com base nas informações de classe de janela que é gerenciada por CWndClassInfo. CWindowImpl contém a macro de DECLARE_WND_CLASS , o que significa registros de CWndClassInfo uma classe de nova janela. Se você desejar que a superclass uma classe existente da janela, derive a classe de CWindowImpl e inclua a macro de DECLARE_WND_SUPERCLASS . Nesse caso, CWndClassInfo registra uma classe de janela que é baseada em uma classe existente mas em usa CWindowImpl::WindowProc. Por exemplo:
class ATL_NO_VTABLE CMyWindow :
OtherInheritedClasses
public CComControl<CMyWindow>
// CComControl derives from CWindowImpl
{
public:
// 1. The NULL parameter means ATL will generate a
// name for the superclass
// 2. The "EDIT" parameter means the superclass is
// based on the standard Windows Edit box
DECLARE_WND_SUPERCLASS(NULL, _T("EDIT"))
// Remainder of class declaration omitted
Dica
Porque CWndClassInfo gerencia informações para apenas uma classe de janela, cada janela criada por uma instância de CWindowImpl é baseada na mesma classe de janela.
CWindowImpl também oferece suporte a janela que subclassing. O método de SubclassWindow anexa uma janela existente ao objeto de CWindowImpl e altera o procedimento da janela CWindowImpl::WindowProc. Cada instância de CWindowImpl enlata subclasse uma janela diferente.
Dica
Para qualquer dado objeto de CWindowImpl , chame Criar ou SubclassWindow.Não chamar ambos os métodos no mesmo objeto.
Além de CWindowImpl, ATL fornece CContainedWindow para criar uma janela que está contido em um outro objeto.
O destrutor classe base (~)CWindowImplRootcertifique-se que a janela está em antes que o objeto é destruído.
CWindowImpl deriva de CWindowImplBaseT, que deriva de CWindowImplRoot, que deriva de TBase e de CMessageMap.
Para obter mais informações sobre |
Consulte |
---|---|
Criando controles |
|
Usando janelas em ATL |
|
Assistente de ATL Projeto |
Hierarquia de Herança
TBase
CWindowImplRoot
CWindowImplBaseT
CWindowImpl
Requisitos
Cabeçalho: atlwin.h