Функция SetSystemPaletteUse (wingdi.h)
Функция SetSystemPaletteUse позволяет приложению указать, содержит ли системная палитра 2 или 20 статических цветов. Системная палитра по умолчанию содержит 20 статических цветов. (Статические цвета нельзя изменить, когда приложение реализует логическую палитру.)
Синтаксис
UINT SetSystemPaletteUse(
[in] HDC hdc,
[in] UINT use
);
Параметры
[in] hdc
Дескриптор контекста устройства. Этот контекст устройства должен ссылаться на устройство, которое поддерживает цветовые палитры.
[in] use
Новое использование системной палитры. Этот параметр может принимать одно из указанных ниже значений.
Возвращаемое значение
Если функция выполняется успешно, возвращаемое значение представляет собой предыдущую системную палитру. Это может быть SYSPAL_NOSTATIC, SYSPAL_NOSTATIC256 или SYSPAL_STATIC.
Если функция завершается сбоем, возвращаемое значение SYSPAL_ERROR.
Комментарии
Приложение может определить, поддерживает ли устройство операции палитры, вызвав функцию GetDeviceCaps и указав константу RASTERCAPS.
Когда окно приложения перемещается на передний план и задано значение SYSPAL_NOSTATIC, приложение должно вызвать функцию GetSysColor , чтобы сохранить текущий параметр цвета системы. Он также должен вызывать SetSysColors, чтобы задать разумные значения, используя только черно-белый цвет. Когда приложение возвращается в фон или завершает работу, необходимо восстановить предыдущие системные цвета.
Если функция возвращает SYSPAL_ERROR, указанный контекст устройства является недопустимым или не поддерживает цветовые палитры.
Приложение должно вызывать эту функцию только в том случае, если окно развернуто и имеет фокус ввода.
Если приложение вызывает SetSystemPaletteUse с параметром uUsage , для SYSPAL_NOSTATIC, система продолжает выделять две записи в системной палитре для чистого белого и чистого черного соответственно.
После вызова этой функции с параметром uUsage , для SYSPAL_NOSTATIC, приложение должно выполнить следующие действия:
- Реализуйте логическую палитру.
- Вызовите функцию GetSysColor , чтобы сохранить текущие параметры цвета системы.
- Вызовите функцию SetSysColors , чтобы задать для системных цветов разумные значения с помощью черного и белого цветов. Например, для смежных или перекрывающихся элементов (таких как рамки окна и границы) необходимо задать черно-белые соответственно.
- Отправьте сообщение WM_SYSCOLORCHANGE в другие окна верхнего уровня, чтобы они могли быть перерисованы с новыми системными цветами.
- Вызовите SetSystemPaletteUse с параметром uUsage , для SYSPAL_STATIC.
- Реализуйте логическую палитру.
- Восстановите системные цвета до предыдущих значений.
- Отправьте сообщение WM_SYSCOLORCHANGE .
Требования
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | wingdi.h (включая Windows.h) |
Библиотека | Gdi32.lib |
DLL | Gdi32.dll |