Compartir a través de


Función SetClassLongA (winuser.h)

Reemplaza el valor especificado de 32 bits (long) en el desplazamiento especificado en la memoria de clase adicional o en la estructura WNDCLASSEX para la clase a la que pertenece la ventana especificada.

Nota Esta función se ha reemplazado por la función SetClassLongPtr. Para escribir código compatible con versiones de 32 y 64 bits de Windows, use SetClassLongPtr.
 

Sintaxis

DWORD SetClassLongA(
  [in] HWND hWnd,
  [in] int  nIndex,
  [in] LONG dwNewLong
);

Parámetros

[in] hWnd

Tipo: HWND

Identificador de la ventana y, indirectamente, de la clase a la que pertenece la ventana.

[in] nIndex

Tipo: int

Valor que se va a reemplazar. Para establecer un valor de 32 bits en la memoria de clase adicional, especifique el desplazamiento de bytes positivo basado en cero del valor que se va a establecer. Los valores válidos están en el intervalo cero a través del número de bytes de memoria de clase adicional, menos cuatro; Por ejemplo, si especificó 12 o más bytes de memoria de clase adicional, un valor de 8 sería un índice para el tercer entero de 32 bits. Para establecer cualquier otro valor de la estructura de WNDCLASSEX, especifique uno de los valores siguientes.

Valor Significado
GCL_CBCLSEXTRA
-20
Establece el tamaño, en bytes, de la memoria adicional asociada a la clase . Establecer este valor no cambia el número de bytes adicionales ya asignados.
GCL_CBWNDEXTRA
-18
Establece el tamaño, en bytes, de la memoria de ventana adicional asociada a cada ventana de la clase . Establecer este valor no cambia el número de bytes adicionales ya asignados. Para obtener información sobre cómo acceder a esta memoria, vea SetWindowLong.
GCL_HBRBACKGROUND
-10
Reemplaza un identificador al pincel de fondo asociado a la clase .
GCL_HCURSOR
-12
Reemplaza un identificador al cursor asociado a la clase .
GCL_HICON
-14
Reemplaza un identificador al icono asociado a la clase .
GCL_HICONSM
-34
Reemplace un identificador al icono pequeño asociado a la clase .
GCL_HMODULE
-16
Reemplaza un identificador al módulo que registró la clase .
GCL_MENUNAME
-8
Reemplaza la dirección de la cadena de nombre del menú. La cadena identifica el recurso de menú asociado a la clase .
GCL_STYLE
-26
Reemplaza los bits de estilo de clase de ventana.
GCL_WNDPROC
-24
Reemplaza la dirección del procedimiento de ventana asociado a la clase .

[in] dwNewLong

Tipo: LONG

Valor de reemplazo.

Valor devuelto

Tipo: DWORD de

Si la función se ejecuta correctamente, el valor devuelto es el valor anterior del entero de 32 bits especificado. Si el valor no se estableció anteriormente, el valor devuelto es cero.

Si se produce un error en la función, el valor devuelto es cero. Para obtener información de error extendida, llame a GetLastError.

Observaciones

Si usa la función SetClassLong y el índice de GCL_WNDPROC para reemplazar el procedimiento de ventana, el procedimiento de ventana debe cumplir las directrices especificadas en la descripción de la función de devolución de llamada WindowProc.

Al llamar a SetClassLong con el índice de GCL_WNDPROC, se crea una subclase de la clase window que afecta a todas las ventanas creadas posteriormente con la clase . Una aplicación puede subclase una clase del sistema, pero no debe subclase una clase de ventana creada por otro proceso.

Reserva memoria de clase adicional especificando un valor distinto de cero en el miembro cbClsExtra del WNDCLASSEX estructura usada con la función RegisterClassEx.

Use la función SetClassLong con cuidado. Por ejemplo, es posible cambiar el color de fondo de una clase mediante SetClassLong, pero este cambio no vuelve a pintar inmediatamente todas las ventanas que pertenecen a la clase .

Ejemplos

Para obtener un ejemplo, vea Mostrar un icono.

Nota

El encabezado winuser.h define SetClassLong como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Conventions for Function Prototypes.

Requisitos

Requisito Valor
cliente mínimo admitido Windows 2000 Professional [solo aplicaciones de escritorio]
servidor mínimo admitido Windows 2000 Server [solo aplicaciones de escritorio]
de la plataforma de destino de Windows
encabezado de winuser.h (incluya Windows.h)
biblioteca de User32.lib
DLL de User32.dll
conjunto de API de ext-ms-win-ntuser-windowclass-l1-1-2 (introducido en Windows 10, versión 10.0.10240)

Consulte también

conceptual de

GetClassLong de

de referencia de

RegisterClassEx

SetClassLongPtr

setWindowLong

WNDCLASSEX

clases de ventana de

WindowProc