Función SetSystemPaletteUse (wingdi.h)

La función SetSystemPaletteUse permite a una aplicación especificar si la paleta del sistema contiene 2 o 20 colores estáticos. La paleta predeterminada del sistema contiene 20 colores estáticos. (Los colores estáticos no se pueden cambiar cuando una aplicación se da cuenta de una paleta lógica).

Sintaxis

UINT SetSystemPaletteUse(
  [in] HDC  hdc,
  [in] UINT use
);

Parámetros

[in] hdc

Identificador del contexto del dispositivo. Este contexto de dispositivo debe hacer referencia a un dispositivo que admita paletas de colores.

[in] use

Nuevo uso de la paleta del sistema. Este parámetro puede ser uno de los valores siguientes.

Valor Significado
SYSPAL_NOSTATIC
La paleta del sistema contiene dos colores estáticos (blanco y negro).
SYSPAL_NOSTATIC256
La paleta del sistema no contiene colores estáticos.
SYSPAL_STATIC
La paleta del sistema contiene colores estáticos que no cambiarán cuando una aplicación se dé cuenta de su paleta lógica.

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto es la paleta del sistema anterior. Puede ser SYSPAL_NOSTATIC, SYSPAL_NOSTATIC256 o SYSPAL_STATIC.

Si se produce un error en la función, se SYSPAL_ERROR el valor devuelto.

Comentarios

Una aplicación puede determinar si un dispositivo admite operaciones de paleta llamando a la función GetDeviceCaps y especificando la constante RASTERCAPS.

Cuando se mueve una ventana de aplicación al primer plano y se establece el valor de SYSPAL_NOSTATIC, la aplicación debe llamar a la función GetSysColor para guardar la configuración de colores del sistema actual. También debe llamar a SetSysColors para establecer valores razonables usando solo blanco y negro. Cuando la aplicación vuelve al fondo o finaliza, se deben restaurar los colores del sistema anteriores.

Si la función devuelve SYSPAL_ERROR, el contexto del dispositivo especificado no es válido o no admite paletas de colores.

Una aplicación debe llamar a esta función solo cuando su ventana está maximizada y tiene el foco de entrada.

Si una aplicación llama a SetSystemPaletteUse con uUsage establecido en SYSPAL_NOSTATIC, el sistema continúa apartando dos entradas en la paleta del sistema para blanco puro y negro puro, respectivamente.

Después de llamar a esta función con uUsage establecido en SYSPAL_NOSTATIC, una aplicación debe realizar los pasos siguientes:

  1. Obtenga la paleta lógica.
  2. Llame a la función GetSysColor para guardar la configuración actual del color del sistema.
  3. Llame a la función SetSysColors para establecer los colores del sistema en valores razonables mediante blanco y negro. Por ejemplo, los elementos adyacentes o superpuestos (como marcos de ventana y bordes) deben establecerse en blanco y negro, respectivamente.
  4. Envíe el mensaje WM_SYSCOLORCHANGE a otras ventanas de nivel superior para permitir que se vuelvan a dibujar con los nuevos colores del sistema.
Cuando la ventana de la aplicación pierde el foco o se cierra, la aplicación debe realizar los pasos siguientes:
  1. Llame a SetSystemPaletteUse con el parámetro uUsage establecido en SYSPAL_STATIC.
  2. Obtenga la paleta lógica.
  3. Restaure los colores del sistema a sus valores anteriores.
  4. Envíe el mensaje WM_SYSCOLORCHANGE .

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 wingdi.h (incluye Windows.h)
Library Gdi32.lib
Archivo DLL Gdi32.dll

Consulte también

Funciones de color

Introducción a los colores

GetDeviceCaps

GetSysColor

GetSystemPaletteUse

SetSysColors