Classe de CWindowImpl
Essa classe fornece métodos para criar ou subclassing uma janela.
Importante |
---|
Essa classe e seus membros não podem ser usados em aplicativos executados 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
Sua classe, derivada de CWindowImpl.TBase
A classe base da sua classe.a classe base padrão é 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 recebido a mensagem a última (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 da janela. |
|
Processa as mensagens enviadas para a janela. |
Membros de dados
Aponta para o procedimento de janela original da classe de janela. |
Comentários
CWindowImpl permite que você crie uma nova janela ou uma subclasse uma janela existente.o procedimento de janela CWindowImpl usa um mapa de mensagem para direcionar mensagens para manipuladores apropriadas.
CWindowImpl::Create cria uma nova janela com base nas informações de classe de janela gerenciada por CWndClassInfo.CWindowImpl contém a macro de DECLARE_WND_CLASS , que significa que CWndClassInfo irá registrar uma classe de nova janela.Se você desejar que a superclass uma classe existente da janela, derive da classe CWindowImpl e inclua a macro de DECLARE_WND_SUPERCLASS .Em esse caso, CWndClassInfo irá registrar uma classe de janela que é baseada em uma classe existente mas em CWindowImpl::WindowProcusa.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
Observação |
---|
Porque CWndClassInfo gerencia informações para uma única classe de janela, cada janela projetada por uma instância de CWindowImpl será 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 a subclasse uma janela diferente.
Observação |
---|
Para qualquer dado objeto de CWindowImpl , chame Criar ou SubclassWindow.Você não deve chamar ambos os métodos no mesmo objeto. |
Além de CWindowImpl, ATL fornece CContainedWindow para criar uma janela contida dentro de outro objeto.
O destrutor da classe base (~CWindowImplRoot) assegura que a janela está em antes que o objeto seja destruída.
CWindowImpl deriva de CWindowImplBaseT, que deriva de CWindowImplRoot, que por sua vez é derivada de TBase e de CMessageMap.
Para obter mais informações |
Consulte |
---|---|
Criando controles |
|
Usando o windows em ATL |
|
Assistente de projeto de ATL |
|
Windows |
Hierarquia de herança
TBase
CWindowImplRoot
CWindowImplBaseT
CWindowImpl
Requisitos
Cabeçalho: atlwin.h