CWndClassInfo (clase)
Esta clase proporciona métodos para registrar información para una clase de ventana.
Importante
Esta clase y sus miembros no se pueden usar en las aplicaciones que se ejecutan en Windows Runtime.
Sintaxis
class CWndClassInfo
Miembros
Métodos públicos
Nombre | Descripción |
---|---|
Registro | Registre la clase de ventana. |
Miembros de datos
Nombre | Descripción |
---|---|
m_atom | Identifica de forma única la clase de ventana registrada. |
m_bSystemCursor | Especifica si el recurso de cursor hace referencia a un cursor del sistema o a un cursor contenido en un recurso de módulo. |
m_lpszCursorID | Especifica el nombre del recurso de cursor. |
m_lpszOrigName | Contiene el nombre de una clase de ventana existente. |
m_szAutoName | Contiene un nombre generado por ATL de la clase de ventana. |
m_wc | Mantiene la información de clase de ventana en una estructura WNDCLASSEX . |
pWndProc | Apunta al procedimiento de ventana de una clase de ventana existente. |
Comentarios
CWndClassInfo
administra la información de una clase de ventana. Normalmente se usa CWndClassInfo
mediante una de tres macros, DECLARE_WND_CLASS, DECLARE_WND_CLASS_EX o DECLARE_WND_SUPERCLASS, como se describe en la tabla siguiente:
Macro | Descripción |
---|---|
DECLARE_WND_CLASS | CWndClassInfo registra información para una nueva clase de ventana. |
DECLARE_WND_CLASS_EX | CWndClassInfo registra información para una nueva clase de ventana, incluidos los parámetros de clase. |
DECLARE_WND_SUPERCLASS | CWndClassInfo registra información para una clase de ventana que se basa en una clase existente, pero usa un procedimiento de ventana diferente. Esta técnica se denomina creación de superclases. |
De forma predeterminada, CWindowImpl incluye la macro DECLARE_WND_CLASS
para crear una ventana basada en una nueva clase de ventana. DECLARE_WND_CLASS proporciona estilos y color de fondo predeterminados para el control. Si quiere especificar el estilo y el color de fondo por su cuenta, derive la clase de CWindowImpl
e incluya la macro DECLARE_WND_CLASS_EX en la definición de clase.
Si quiere crear una ventana basada en una clase de ventana existente, derive la clase de CWindowImpl
e incluya la macro DECLARE_WND_SUPERCLASS en la definición de clase. Por ejemplo:
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 más información sobre las clases de ventana, consulte Clases de ventana en Windows SDK.
Para más información sobre el uso de ventanas en ATL, consulte el artículo Clases de ventanas de ATL.
Requisitos
Encabezado: atlwin.h
CWndClassInfo::m_atom
Contiene el identificador único de la clase de ventana registrada.
ATOM m_atom;
CWndClassInfo::m_bSystemCursor
Si es TRUE, el recurso de cursor del sistema se cargará cuando se registre la clase de ventana.
BOOL m_bSystemCursor;
Comentarios
De lo contrario, se cargará el recurso de cursor contenido en el módulo.
CWndClassInfo
usa m_bSystemCursor
solo cuando se especifica la macro DECLARE_WND_CLASS (el valor predeterminado en CWindowImpl) o DECLARE_WND_CLASS_EX. En este caso, m_bSystemCursor
se inicializa en TRUE. Para más información, consulte la información general de CWindowImpl.
CWndClassInfo::m_lpszCursorID
Especifica el nombre del recurso de cursor o el identificador de recurso de la palabra de orden inferior y cero en la palabra de orden superior.
LPCTSTR m_lpszCursorID;
Comentarios
Cuando se registra la clase de ventana, el identificador del cursor identificado por m_lpszCursorID
se recupera y almacena mediante m_wc.
CWndClassInfo
usa m_lpszCursorID
solo cuando se especifica la macro DECLARE_WND_CLASS (el valor predeterminado en CWindowImpl) o DECLARE_WND_CLASS_EX. En este caso, m_lpszCursorID
se inicializa en IDC_ARROW. Para más información, consulte la información general de CWindowImpl.
CWndClassInfo::m_lpszOrigName
Contiene el nombre de una clase de ventana existente.
LPCTSTR m_lpszOrigName;
Comentarios
CWndClassInfo
usa m_lpszOrigName
solo cuando se incluye la macro DECLARE_WND_SUPERCLASS en la definición de clase. En este caso, CWndClassInfo
registra una clase de ventana que se basa en la clase nombrada por m_lpszOrigName
. Para más información, consulte la información general de CWindowImpl.
CWndClassInfo::m_szAutoName
Contiene el nombre de la clase de ventana.
TCHAR m_szAutoName[13];
Comentarios
CWndClassInfo
usa m_szAutoName
solo si se pasa NULL para el parámetro WndClassName
a DECLARE_WND_CLASS, DECLARE_WND_CLASS_EX o DECLARE_WND_SUPERCLASS. ATL construirá un nombre cuando se registre la clase de ventana.
CWndClassInfo::m_wc
Mantiene la información de la clase de ventana en una estructura WNDCLASSEX.
WNDCLASSEX m_wc;
Comentarios
Si ha especificado la macro DECLARE_WND_CLASS (el valor predeterminado en CWindowImpl) o la macro DECLARE_WND_CLASS_EX, m_wc
contiene información sobre una nueva clase de ventana.
Si ha especificado la macro DECLARE_WND_SUPERCLASS, m_wc
contiene información sobre una superclase: una clase de ventana basada en una clase existente, pero que usa un procedimiento de ventana diferente. m_lpszOrigName y pWndProc guardan el nombre de la clase de ventana y el procedimiento de ventana, respectivamente.
CWndClassInfo::pWndProc
Apunta al procedimiento de ventana de una clase de ventana existente.
WNDPROC pWndProc;
Comentarios
CWndClassInfo
usa pWndProc
solo cuando se incluye la macro DECLARE_WND_SUPERCLASS en la definición de clase. En este caso, CWndClassInfo
registra una clase de ventana que se basa en una clase existente, pero utiliza un procedimiento de ventana diferente. El procedimiento de ventana de la clase de ventana existente se guarda en pWndProc
. Para más información, consulte la información general de CWindowImpl.
CWndClassInfo::Register
CWindowImpl::Create lo llama para registrar la clase de ventana si aún no se ha registrado.
ATOM Register(WNDPROC* pProc);
Parámetros
pProc
[out] Especifica el procedimiento de ventana original de una clase de ventana existente.
Valor devuelto
Si se ejecuta correctamente, un átomo que identifica de forma única la clase de ventana que se registra. De lo contrario, es 0.
Comentarios
Si ha especificado la macro DECLARE_WND_CLASS (el valor predeterminado en CWindowImpl) o la macro DECLARE_WND_CLASS_EX, Register
registra una nueva clase de ventana. En este caso, no se usa el parámetro pProc.
Si ha especificado la macro DECLARE_WND_SUPERCLASS, Register
registra una superclase: una clase de ventana basada en una clase existente, pero que usa un procedimiento de ventana diferente. El procedimiento de ventana de la clase de ventana existente se devuelve en pProc.