Classe CWindowImpl
Essa classe fornece métodos para criação ou subclassificar uma janela.
template <
class T,
class TBase = CWindow,
class TWinTraits = CControlWinTraits
>
class ATL_NO_VTABLE CWindowImpl :
public CWindowImplBaseT< TBase, TWinTraits >
Parâmetros
T
Sua classe, derivado de CWindowImpl.TBase
A classe base da sua nova classe.A classe de base padrão é CWindow.TWinTraits
A classe de características que define estilos para sua janela.O padrão é CControlWinTraits.
Comentários
CWindowImpl permite que você criar uma nova janela ou uma subclasse uma janela existente. CWindowImpl's janela procedimento usa uma mensagem mapear mensagens direto para os manipuladores apropriados.
CWindowImpl::Create cria uma nova janela com base nas informações de classe de janela gerenciadas por CWndClassInfo.CWindowImpl contém o DECLARE_WND_CLASS macro, o que significa CWndClassInfo irá registrar uma nova classe de janela. Se você quiser superclasse uma classe de janela existente, derivar a classe de CWindowImpl e inclua o DECLARE_WND_SUPERCLASS macro.Nesse caso, CWndClassInfo registrará uma classe de janela que se baseia em uma classe existente, mas 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
Observação: |
---|
Porque CWndClassInfo gerencia informações de uma classe única janela, cada janela criada por meio de uma ocorrência da CWindowImpl se baseará da mesma classe de janela. |
CWindowImpl também oferece suporte a subclassificação de janela. The SubclassWindow método anexa uma janela existente para o CWindowImpl objeto e altera o procedimento de janela para CWindowImpl::WindowProc. Cada instância de CWindowImpl pode subclasse de uma janela diferente.
Observação: |
---|
Para qualquer dado CWindowImpl objeto, chamar qualquer um Criar or SubclassWindow. Você não deve chamar os dois métodos no mesmo objeto. |
Em adição a CWindowImplFornece ATL CContainedWindow para criar uma janela contida em outro objeto.
O destruidor de classe base (~ CWindowImplRoot) garante que a janela eliminada antes que o objeto é destruído.
CWindowImpl deriva da CWindowImplBaseT, que deriva de CWindowImplRoot, que por sua vez, deriva de TBase and CMessageMap.
Para obter mais informações sobre |
Consulte |
---|---|
Criação de controles |
|
Usando o windows em ATL |
|
ATL projeto assistente |
|
Windows |
Requisitos
Cabeçalho: atlwin.h