Función SetClassLongPtrA (winuser.h)

Reemplaza el valor especificado 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 Para escribir código compatible con Windows de 32 y 64 bits, use SetClassLongPtr. Al compilar para Windows de 32 bits, SetClassLongPtr se define como una llamada a la función SetClassLong

 

Sintaxis

ULONG_PTR SetClassLongPtrA(
  [in] HWND     hWnd,
  [in] int      nIndex,
  [in] LONG_PTR 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 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 ocho; por ejemplo, si especificó 24 o más bytes de memoria de clase adicional, un valor de 16 sería un índice para el tercer entero. Para establecer un valor distinto 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 SetWindowLongPtr.
GCLP_ HBRBACKGROUND
-10
Reemplaza un identificador al pincel de fondo asociado a la clase .
GCLP_HCURSOR
-12
Reemplaza un identificador al cursor asociado a la clase .
GCLP_HICON
-14
Reemplaza un identificador al icono asociado a la clase .
GCLP_HICONSM
-34
Recupera un identificador del icono pequeño asociado a la clase .
GCLP_HMODULE
-16
Reemplaza un identificador al módulo que registró la clase .
GCLP_MENUNAME
-8
Reemplaza el puntero a 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.
GCLP_WNDPROC
-24
Reemplaza el puntero al procedimiento de ventana asociado a la clase .

[in] dwNewLong

Tipo: LONG_PTR

Valor de reemplazo.

Valor devuelto

Tipo: ULONG_PTR

Si la función se ejecuta correctamente, el valor devuelto es el valor anterior del desplazamiento especificado. Si 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 SetClassLongPtr y el índice de GCLP_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 SetClassLongPtr con el índice de GCLP_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 SetClassLongPtr con cuidado. Por ejemplo, es posible cambiar el color de fondo de una clase mediante SetClassLongPtr, pero este cambio no vuelve a dibujar inmediatamente todas las ventanas que pertenecen a la clase .

Nota:

El encabezado winuser.h define SetClassLongPtr 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 neutro de codificación con código que no es neutral de codificación puede provocar discrepancias que dan lugar a errores de compilación o en 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 (incluya 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

GetClassLongPtr

Referencia

RegisterClassEx

SetWindowLongPtr

WNDCLASSEX

Clases de ventanas

WindowProc