Partager via


SetSystemPaletteUse, fonction (wingdi.h)

La fonction SetSystemPaletteUse permet à une application de spécifier si la palette système contient 2 ou 20 couleurs statiques. La palette système par défaut contient 20 couleurs statiques. (Les couleurs statiques ne peuvent pas être modifiées lorsqu’une application réalise une palette logique.)

Syntaxe

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

Paramètres

[in] hdc

Handle pour le contexte de l’appareil. Ce contexte d’appareil doit faire référence à un appareil qui prend en charge les palettes de couleurs.

[in] use

Nouvelle utilisation de la palette système. Ce paramètre peut prendre les valeurs suivantes.

Valeur Signification
SYSPAL_NOSTATIC
La palette système contient deux couleurs statiques (noir et blanc).
SYSPAL_NOSTATIC256
La palette système ne contient aucune couleur statique.
SYSPAL_STATIC
La palette système contient des couleurs statiques qui ne changent pas lorsqu’une application réalise sa palette logique.

Valeur retournée

Si la fonction réussit, la valeur de retour est la palette système précédente. Il peut s’agir de SYSPAL_NOSTATIC, de SYSPAL_NOSTATIC256 ou de SYSPAL_STATIC.

Si la fonction échoue, la valeur de retour est SYSPAL_ERROR.

Remarques

Une application peut déterminer si un appareil prend en charge les opérations de palette en appelant la fonction GetDeviceCaps et en spécifiant la constante RASTERCAPS.

Lorsqu’une fenêtre d’application se déplace au premier plan et que la valeur SYSPAL_NOSTATIC est définie, l’application doit appeler la fonction GetSysColor pour enregistrer le paramètre de couleurs système actuel. Il doit également appeler SetSysColors pour définir des valeurs raisonnables en utilisant uniquement le noir et blanc. Lorsque l’application revient à l’arrière-plan ou se termine, les couleurs système précédentes doivent être restaurées.

Si la fonction retourne SYSPAL_ERROR, le contexte d’appareil spécifié n’est pas valide ou ne prend pas en charge les palettes de couleurs.

Une application doit appeler cette fonction uniquement lorsque sa fenêtre est agrandie et a le focus d’entrée.

Si une application appelle SetSystemPaletteUse avec uUsage défini sur SYSPAL_NOSTATIC, le système continue de réserver deux entrées dans la palette système pour le blanc pur et le noir pur, respectivement.

Après avoir appelé cette fonction avec uUsage défini sur SYSPAL_NOSTATIC, une application doit effectuer les étapes suivantes :

  1. Réalisez la palette logique.
  2. Appelez la fonction GetSysColor pour enregistrer les paramètres de couleur système actuels.
  3. Appelez la fonction SetSysColors pour définir les couleurs système sur des valeurs raisonnables en noir et blanc. Par exemple, les éléments adjacents ou qui se chevauchent (tels que les cadres de fenêtre et les bordures) doivent être définis en noir et blanc, respectivement.
  4. Envoyez le message WM_SYSCOLORCHANGE à d’autres fenêtres de niveau supérieur pour leur permettre d’être redessinées avec les nouvelles couleurs système.
Lorsque la fenêtre de l’application perd le focus ou se ferme, l’application doit effectuer les étapes suivantes :
  1. Appelez SetSystemPaletteUse avec le paramètre uUsage défini sur SYSPAL_STATIC.
  2. Réalisez la palette logique.
  3. Restaurez les couleurs système à leurs valeurs précédentes.
  4. Envoyez le message WM_SYSCOLORCHANGE .

Configuration requise

   
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête wingdi.h (inclure Windows.h)
Bibliothèque Gdi32.lib
DLL Gdi32.dll

Voir aussi

Fonctions de couleur

Vue d’ensemble des couleurs

GetDeviceCaps

GetSysColor

GetSystemPaletteUse

SetSysColors