Compartir a través de


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.

Consulte también

CComControl (clase)
Información general sobre la clase