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.