Compartilhar via


Classe CWndClassInfo

Essa classe fornece métodos para registrar informações para uma classe de janela.

Importante

Essa classe e os respectivos membros não podem ser usados em aplicativos executados no Windows Runtime.

Sintaxe

class CWndClassInfo

Membros

Métodos públicos

Nome Descrição
Registrar Registra a classe de janela.

Membros de dados

Nome Descrição
m_atom Identifica exclusivamente a classe de janela registrada.
m_bSystemCursor Especifica se o recurso do cursor se refere a um cursor do sistema ou a um cursor contido em um recurso de módulo.
m_lpszCursorID Especifica o nome do recurso de cursor.
m_lpszOrigName Contém o nome de uma classe de janela existente.
m_szAutoName Contém um nome gerado por ATL da classe de janela.
m_wc Mantém informações de classe de janela em uma estrutura WNDCLASSEX.
pWndProc Aponta para o procedimento de janela de uma classe de janela existente.

Comentários

CWndClassInfo gerencia as informações de uma classe de janela. Normalmente, você usa CWndClassInfo por meio de uma das três macros, DECLARE_WND_CLASS, DECLARE_WND_CLASS_EX, ou DECLARE_WND_SUPERCLASS, conforme descrito na tabela a seguir:

Macro Descrição
DECLARE_WND_CLASS CWndClassInfo registra as informações de uma classe de janela.
DECLARE_WND_CLASS_EX CWndClassInfo registra informações para uma nova classe de janela, incluindo os parâmetros de classe.
DECLARE_WND_SUPERCLASS CWndClassInfo registra informações para uma classe de janela baseada em uma classe existente, mas usa um procedimento de janela diferente. Essa técnica é chamada de superclasse.

Por padrão, CWindowImpl inclui a macro DECLARE_WND_CLASS para criar uma janela com base em uma nova classe de janela. DECLARE_WND_CLASS fornece estilos padrão e cor da tela de fundo para o controle. Se você quiser especificar o estilo e a cor da tela de fundo por conta própria, derive sua classe de CWindowImpl e inclua a macro DECLARE_WND_CLASS_EX na definição de classe.

Se você quiser criar uma janela com base em uma classe de janela existente, derive sua classe de CWindowImpl e inclua a macro DECLARE_WND_SUPERCLASS na sua definição de classe. 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

Para obter mais informações sobre classes de janela, confira Classes de janela no SDK do Windows.

Para obter mais informações sobre como usar janelas na ATL, confira o artigo Classes de janelas de ATL.

Requisitos

Cabeçalho: atlwin.h

CWndClassInfo::m_atom

Contém o identificador exclusivo da classe de janela registrada.

ATOM m_atom;

CWndClassInfo::m_bSystemCursor

Se TRUE, o recurso de cursor do sistema será carregado quando a classe de janela for registrada.

BOOL m_bSystemCursor;

Comentários

Caso contrário, o recurso de cursor contido em seu módulo será carregado.

CWndClassInfo usa m_bSystemCursor somente quando a macro DECLARE_WND_CLASS (o padrão em CWindowImpl) ou a DECLARE_WND_CLASS_EX é especificada. Nesse caso, m_bSystemCursor é inicializado como TRUE. Para saber mais, confira visão geral CWndClassInfo.

CWndClassInfo::m_lpszCursorID

Especifica o nome do recurso do cursor ou o identificador de recurso na palavra de baixa ordem e zero na palavra de alta ordem.

LPCTSTR m_lpszCursorID;

Comentários

Quando a classe de janela é registrada, o identificador para o cursor identificado por m_lpszCursorID é recuperado e armazenado por m_wc.

CWndClassInfo usa m_lpszCursorID somente quando a macro DECLARE_WND_CLASS (o padrão em CWindowImpl) ou a DECLARE_WND_CLASS_EX é especificada. Nesse caso, m_lpszCursorID é inicializado como IDC_ARROW. Para saber mais, confira visão geral CWndClassInfo.

CWndClassInfo::m_lpszOrigName

Contém o nome de uma classe de janela existente.

LPCTSTR m_lpszOrigName;

Comentários

CWndClassInfo usa m_lpszOrigName somente quando você inclui a macro DECLARE_WND_SUPERCLASS em sua definição de classe. Nesse caso, CWndClassInfo registra uma classe de janela com base na classe nomeada por m_lpszOrigName. Para saber mais, confira visão geral CWndClassInfo.

CWndClassInfo::m_szAutoName

Tem o nome da classe de janela.

TCHAR m_szAutoName[13];

Comentários

CWndClassInfo usa m_szAutoName somente se NULL for passado para o parâmetro WndClassName para DECLARE_WND_CLASS, DECLARE_WND_CLASS_EX ou DECLARE_WND_SUPERCLASS. A ATL construirá um nome quando a classe de janela for registrada.

CWndClassInfo::m_wc

Mantém as informações da classe de janela em uma estrutura WNDCLASSEX.

WNDCLASSEX m_wc;

Comentários

Se você tiver especificado a macro DECLARE_WND_CLASS (o padrão em CWindowImpl) ou a DECLARE_WND_CLASS_EX, m_wc conterá informações sobre uma nova classe de janela.

Se você tiver especificado a macro DECLARE_WND_SUPERCLASS, m_wc conterá informações sobre uma superclasse – uma classe de janela baseada em uma classe existente, mas que usa um procedimento de janela diferente. m_lpszOrigName e pWndProc salvam o nome e o procedimento de janela da classe de janela existentes, respectivamente.

CWndClassInfo::pWndProc

Aponta para o procedimento de janela de uma classe de janela existente.

WNDPROC pWndProc;

Comentários

CWndClassInfo usa pWndProc somente quando você inclui a macro DECLARE_WND_SUPERCLASS em sua definição de classe. Nesse caso, CWndClassInfo registra uma classe de janela baseada em uma classe existente, mas usa um procedimento de janela diferente. O procedimento de janela da classe de janela existente é salvo em pWndProc. Para saber mais, confira visão geral CWndClassInfo.

CWndClassInfo::Register

Chamado por CWindowImpl::Create para registrar a classe de janela se ela ainda não tiver sido registrada.

ATOM Register(WNDPROC* pProc);

Parâmetros

pProc
[out] Especifica o procedimento de janela original de uma classe de janela existente.

Valor de retorno

Se tiver êxito, um átomo que identifica exclusivamente a classe de janela que está sendo registrada. Caso contrário, será 0.

Comentários

Se você tiver especificado o DECLARE_WND_CLASS (o padrão em CWindowImpl) ou a macro DECLARE_WND_CLASS_EX, Register registra uma nova classe de janela. Nesse caso, o parâmetro pProc não é usado.

Se você tiver especificado a macro DECLARE_WND_SUPERCLASS, Register registrará uma superclasse – uma classe de janela baseada em uma classe existente, mas que usa um procedimento de janela diferente. O procedimento de janela da classe de janela existente é retornado no pProc.

Confira também

Classe CComControl
Visão geral da aula