Función SetClassLongA (winuser.h)

Reemplaza el valor de 32 bits especificado (long) en el desplazamiento especificado en la memoria de clase adicional o la estructura WNDCLASSEX de 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, 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 hasta el 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 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 por el 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 de 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

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 la función no se realiza correctamente, el valor devuelto es cero. Para obtener información de error extendida, llame a GetLastError.

Comentarios

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 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.

Reserve memoria de clase adicional especificando un valor distinto de cero en el miembro cbClsExtra de la estructura WNDCLASSEX utilizada 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 Convenciones para prototipos de función.

Requisitos

   
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado winuser.h (incluir Windows.h)
Library User32.lib
Archivo DLL User32.dll
Conjunto de API ext-ms-win-ntuser-windowclass-l1-1-2 (introducido en Windows 10, versión 10.0.10240)

Consulte también

Conceptual

GetClassLong

Referencia

RegisterClassEx

SetClassLongPtr

SetWindowLong

WNDCLASSEX

Clases de ventanas

WindowProc