Partilhar via


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

CWindowImpl::Create

Cria uma janela.

Métodos de CWindowImplBaseT

DefWindowProc

Fornece o processamento de mensagem padrão.

GetCurrentMessage

Retorna a mensagem atual.

GetWindowProc

Retorna o procedimento de janela atual.

OnFinalMessage

Chamado após a mensagem a última é recebido (normalmente WM_NCDESTROY).

SubclassWindow

Subclasses uma janela.

UnsubclassWindow

Restaura uma janela anteriormente tenha sido derivado.

Métodos estáticos

GetWndClassInfo

Retorna uma instância de CWndClassInfoestático, que gerencia informações de classe de janela.

WindowProc

Processa as mensagens enviadas para a janela.

Membros de dados

m_pfnSuperWindowProc

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

Tutorial de ATL

Usando janelas em ATL

Classes da janela de ATL

Assistente de ATL Projeto

Criando um Projeto ATL

Hierarquia de Herança

CMessageMap

TBase

CWindowImplRoot

CWindowImplBaseT

CWindowImpl

Requisitos

Cabeçalho: atlwin.h

Consulte também

Referência

BEGIN_MSG_MAP

Classe de CComControl

Outros recursos

Visão geral da classe de ATL