SetSystemPaletteUse
The SetSystemPaletteUse
function allows an application to specify whether the system palette contains 2
or 20 static colors. The default system palette contains 20 static colors.
(Static colors cannot be changed when an application realizes a logical
palette.)
UINT SetSystemPaletteUse(
HDC hdc, |
// handle of device
context |
UINT uUsage |
// palette-usage
flag |
); |
|
Parameters
hdc
Identifies
the device context. This device context must refer to a device that supports
color palettes.
uUsage
Specifies the
new use of the system palette. This parameter can be one of the following
values:
Value |
Meaning |
SYSPAL_NOSTATIC |
The system
palette contains two static colors (black and white). |
SYSPAL_STATIC |
The system
palette contains static colors that will not change when an application
realizes its logical palette. |
Return Values
If the
function succeeds, the return value is the previous usage of the system palette
(it can be either SYSPAL_NOSTATIC or SYSPAL_STATIC).
If the
function fails, the return value is SYSPAL_ERROR. To get extended error
information, call GetLastError
Remarks
An
application can determine whether a device supports palette operations by
calling the GetDeviceCaps
When an
application window moves to the foreground and the SYSPAL_NOSTATIC value is set,
the application must call the GetSysColor
If the
function returns SYSPAL_ERROR, the specified device context is invalid or does
not support color palettes.
An
application must call this function only when its window is maximized and has
the input focus.
If an
application calls SetSystemPaletteUse with uUsage set to
SYSPAL_NOSTATIC, Windows continues to set aside two entries in the system
palette for pure white and pure black, respectively.
After calling
this function with uUsage set to SYSPAL_NOSTATIC, an application must
take the following steps:
1. Realize the logical palette.
2. Call the GetSysColor function to save
the current system-color settings.
3. Call the SetSysColors function to set
the system colors to reasonable values using black and white. For example,
adjacent or overlapping items (such as window frames and borders) should be set
to black and white, respectively.
4. Send the WM_SYSCOLORCHANGE message to other
top-level windows to allow them to be redrawn with the new system colors.
When the
application s window loses focus or closes, the application must perform the
following steps:
1. Call SetSystemPaletteUse with the uUsage
parameter set to SYSPAL_STATIC.
2. Realize the logical palette.
3. Restore the system colors to their previous
values.
4. Send the WM_SYSCOLORCHANGE message.
See Also