Share via


SetSystemPaletteUse-Funktion (wingdi.h)

Mit der SetSystemPaletteUse-Funktion kann eine Anwendung angeben, ob die Systempalette 2 oder 20 statische Farben enthält. Die Standardsystempalette enthält 20 statische Farben. (Statische Farben können nicht geändert werden, wenn eine Anwendung eine logische Palette erkennt.)

Syntax

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

Parameter

[in] hdc

Ein Handle für den Gerätekontext. Dieser Gerätekontext muss auf ein Gerät verweisen, das Farbpaletten unterstützt.

[in] use

Die neue Verwendung der Systempalette. Dieser Parameter kann einen der folgenden Werte annehmen.

Wert Bedeutung
SYSPAL_NOSTATIC
Die Systempalette enthält zwei statische Farben (Schwarz und Weiß).
SYSPAL_NOSTATIC256
Die Systempalette enthält keine statischen Farben.
SYSPAL_STATIC
Die Systempalette enthält statische Farben, die sich nicht ändern, wenn eine Anwendung ihre logische Palette realisiert.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert die vorherige Systempalette. Dies kann entweder SYSPAL_NOSTATIC, SYSPAL_NOSTATIC256 oder SYSPAL_STATIC sein.

Wenn die Funktion fehlschlägt, wird der Rückgabewert SYSPAL_ERROR.

Hinweise

Eine Anwendung kann ermitteln, ob ein Gerät Palettenvorgänge unterstützt, indem sie die GetDeviceCaps-Funktion aufruft und die RASTERCAPS-Konstante angibt.

Wenn ein Anwendungsfenster in den Vordergrund wechselt und der wert für SYSPAL_NOSTATIC festgelegt ist, muss die Anwendung die GetSysColor-Funktion aufrufen, um die aktuelle Einstellung für Systemfarben zu speichern. Außerdem muss SetSysColors aufgerufen werden, um vernünftige Werte nur mit Schwarzweiß festzulegen. Wenn die Anwendung zum Hintergrund zurückkehrt oder beendet wird, müssen die vorherigen Systemfarben wiederhergestellt werden.

Wenn die Funktion SYSPAL_ERROR zurückgibt, ist der angegebene Gerätekontext ungültig oder unterstützt keine Farbpaletten.

Eine Anwendung darf diese Funktion nur aufrufen, wenn ihr Fenster maximiert ist und den Eingabefokus hat.

Wenn eine Anwendung SetSystemPaletteUse aufruft, wobei uUsage auf SYSPAL_NOSTATIC festgelegt ist, setzt das System weiterhin zwei Einträge in der Systempalette für reines Weiß bzw. reines Schwarz fest.

Nach dem Aufrufen dieser Funktion, bei der uUsage auf SYSPAL_NOSTATIC festgelegt ist, muss eine Anwendung die folgenden Schritte ausführen:

  1. Realisieren Sie die logische Palette.
  2. Rufen Sie die GetSysColor-Funktion auf, um die aktuellen Systemfarbeinstellungen zu speichern.
  3. Rufen Sie die SetSysColors-Funktion auf, um die Systemfarben mithilfe von Schwarz und Weiß auf vernünftige Werte festzulegen. Beispielsweise sollten angrenzende oder überlappende Elemente (z. B. Fensterrahmen und Rahmen) auf schwarz bzw. weiß festgelegt werden.
  4. Senden Sie die WM_SYSCOLORCHANGE Nachricht an andere Fenster der obersten Ebene, damit sie mit den neuen Systemfarben neu gezeichnet werden können.
Wenn das Fenster der Anwendung den Fokus verliert oder geschlossen wird, muss die Anwendung die folgenden Schritte ausführen:
  1. Rufen Sie SetSystemPaletteUse auf, wobei der Parameter uUsage auf SYSPAL_STATIC festgelegt ist.
  2. Realisieren Sie die logische Palette.
  3. Stellen Sie die Systemfarben auf ihre vorherigen Werte wieder her.
  4. Senden Sie die WM_SYSCOLORCHANGE Nachricht.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile wingdi.h (windows.h einschließen)
Bibliothek Gdi32.lib
DLL Gdi32.dll

Weitere Informationen

Farbfunktionen

Übersicht über Farben

GetDeviceCaps

GetSysColor

GetSystemPaletteUse

SetSysColors