Partilhar via


Classe CWndClassInfo

Observação

A Active Template Library (ATL) continua a ser suportada. No entanto, já não estamos a adicionar funcionalidades nem a atualizar a documentação.

Esta classe fornece métodos para registar informação para uma classe janela.

Importante

Esta classe e os seus membros não podem ser usados em aplicações que sejam executadas no Windows Runtime.

Sintaxe

class CWndClassInfo

Membros

Métodos Públicos

Nome Description
Registo Regista a classe janela.

Membros de Dados

Nome Description
m_atom Identifica de forma única a classe de janela registada.
m_bSystemCursor Especifica se o recurso cursor se refere a um cursor do sistema ou a um cursor contido num recurso de módulo.
m_lpszCursorID Especifica o nome do recurso cursor.
m_lpszOrigName Contém o nome de uma classe de janela existente.
m_szAutoName Detém o nome gerado por ATL da classe janela.
m_wc Mantém a informação da classe janela numa WNDCLASSEX estrutura.
pWndProc Aponta para o procedimento de janela de uma classe de janela existente.

Observações

CWndClassInfo gere a informação de uma classe janela. Normalmente utiliza-se CWndClassInfo através de um de três macros: DECLARE_WND_CLASS, DECLARE_WND_CLASS_EX ou DECLARE_WND_SUPERCLASS, conforme descrito na tabela seguinte:

Macro Description
DECLARE_WND_CLASS CWndClassInfo Regista informações para uma nova classe de janela.
DECLARE_WND_CLASS_EX CWndClassInfo regista informação para uma nova classe janela, incluindo os parâmetros da classe.
DECLARE_WND_SUPERCLASS CWndClassInfo regista informação para uma classe janela baseada numa classe existente, mas que utiliza um procedimento de janela diferente. Esta técnica chama-se superclassing.

Por defeito, o CWindowImpl inclui a DECLARE_WND_CLASS macro para criar uma janela baseada numa nova classe de janela. DECLARE_WND_CLASS fornece estilos predefinidos e cor de fundo para o controlo. Se quiseres especificar o estilo e a cor de fundo tu próprio, deriva a tua classe e CWindowImpl inclui a macro DECLARE_WND_CLASS_EX na definição da tua classe.

Se quiseres criar uma janela baseada numa classe de janela existente, deriva a tua classe e CWindowImpl inclui a macro DECLARE_WND_SUPERCLASS na definição da tua 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 mais informações sobre classes de janela, consulte Classes de Janelas no SDK do Windows.

Para mais informações sobre o uso de janelas em ATL, consulte o artigo Classes de Janelas ATL.

Requerimentos

Cabeçalho: atlwin.h

CWndClassInfo::m_atom

Contém o identificador único para a classe de janela registada.

ATOM m_atom;

CWndClassInfo::m_bSystemCursor

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

BOOL m_bSystemCursor;

Observações

Caso contrário, o recurso do cursor contido no teu módulo será carregado.

CWndClassInfo usa m_bSystemCursor apenas quando o DECLARE_WND_CLASS (o padrão em CWindowImpl) ou a macro DECLARE_WND_CLASS_EX é especificado. Neste caso, m_bSystemCursor é inicializado para TRUE. Para mais informações, consulte a visão geral do CWndClassInfo .

CWndClassInfo::m_lpszCursorID

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

LPCTSTR m_lpszCursorID;

Observações

Quando a classe janela é registada, o handle do cursor identificado por m_lpszCursorID é recuperado e armazenado por m_wc.

CWndClassInfo usa m_lpszCursorID apenas quando o DECLARE_WND_CLASS (o padrão em CWindowImpl) ou a macro DECLARE_WND_CLASS_EX é especificado. Neste caso, m_lpszCursorID é inicializado para IDC_ARROW. Para mais informações, consulte a visão geral do CWndClassInfo .

CWndClassInfo::m_lpszOrigName

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

LPCTSTR m_lpszOrigName;

Observações

CWndClassInfo Usa m_lpszOrigName apenas quando incluires a macro DECLARE_WND_SUPERCLASS na definição da tua classe. Neste caso, CWndClassInfo regista uma classe janela baseada na classe nomeada por m_lpszOrigName. Para mais informações, consulte a visão geral do CWndClassInfo .

CWndClassInfo::m_szAutoName

Detém o nome da classe janela.

TCHAR m_szAutoName[13];

Observações

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

CWndClassInfo::m_wc

Mantém a informação da classe janela numa estrutura WNDCLASSEX .

WNDCLASSEX m_wc;

Observações

Se especificou a DECLARE_WND_CLASS (o padrão em CWindowImpl) ou a macro DECLARE_WND_CLASS_EX , m_wc contém informação sobre uma nova classe janela.

Se especificou a macro DECLARE_WND_SUPERCLASS , m_wc contém informação sobre uma superclasse — uma classe janela baseada numa classe existente mas que utiliza um procedimento de janela diferente. m_lpszOrigName e pWndProc guardam, respetivamente, o nome e o procedimento da janela da classe existente.

CWndClassInfo::p WndProc

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

WNDPROC pWndProc;

Observações

CWndClassInfo Usa pWndProc apenas quando incluires a macro DECLARE_WND_SUPERCLASS na definição da tua classe. Neste caso, CWndClassInfo regista uma classe janela baseada numa classe existente, mas utiliza um procedimento de janela diferente. O procedimento de janela da classe de janela existente é guardado em pWndProc. Para mais informações, consulte a visão geral do CWndClassInfo .

CWndClassInfo::Registar-se

Chamado por CWindowImpl::Create para registar a classe janela caso esta ainda não tenha sido registada.

ATOM Register(WNDPROC* pProc);

Parâmetros

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

Valor de retorno

Se for bem-sucedido, um átomo que identifica de forma única a classe janela que está a ser registada. Caso contrário, 0.

Observações

Se especificaste o DECLARE_WND_CLASS (o padrão no CWindowImpl) ou o macro DECLARE_WND_CLASS_EX , Register regista uma nova classe janela. Neste caso, o parâmetro pProc não é utilizado.

Se especificou a macro DECLARE_WND_SUPERCLASS , Register regista uma superclasse — uma classe janela baseada numa classe existente mas que utiliza um procedimento de janela diferente. O procedimento de janela da classe de janela existente é devolvido em pProc.

Consulte também

Classe CComControl
Visão geral da classe