Функция SetSystemPaletteUse


Функция SetSystemPaletteUse дает возможность приложению определить, содержит ли системная палитра 2 или 20 статических цветов. По умолчанию системная палитра содержит 20 статических цветов. (Статические цвета не могут измениться, когда приложение реализует логическую палитру.)

Синтаксис

UINT SetSystemPaletteUse(
  HDC hdc,      // handle to DC
  UINT uUsage   // palette usage
);

Параметры

hdc

[in] Дескриптор контекста устройства. Этот контекст устройства должен ссылаться на устройство, которое поддерживает цветовые палитры.

uUsage

[in] Определяет новое использование системной палитры. Этот параметр может быть одним из нижеследующих значений.

Значение Предназначение
SYSPAL_NOSTATIC Системная палитра содержит в себе два (черный и белый) статических цвета.
SYSPAL_NOSTATIC256 Windows 2000/XP: Системная палитра не содержит в себе никаких статических цветов.
SYSPAL_STATIC Системная палитра содержит в себе статические цвета, которые не будут изменяться, когда приложение реализует свою логическую палитру.

Возвращаемые значения

Если функция завершается успешно, возвращаемое значение - предыдущая системная палитра. Это может быть или SYSPAL_NOSTATIC, SYSPAL_NOSTATIC256 или SYSPAL_STATIC.

Если функция завершается ошибкой, возвращаемое значение - SYSPAL_ERROR.

Windows NT/2000/XP: Чтобы получить дополнительную информацию об ошибке, вызовите GetLastError.

Замечания

Приложение может установить, поддерживает ли устройство операции палитры при помощи вызова функция GetDeviceCaps и определение константы RASTERCAPS.

Когда окно приложения перемещается на передний план и устанавливается значение SYSPAL_NOSTATIC, приложение должно вызвать функцию функцию GetSysColor, чтобы сохранить существующую систему параметров цвета. Оно должно также вызвать функцию SetSysColors, чтобы установить допустимые значения, используя только черный и белый цвета. Когда приложение возвращается в фоновый режим или завершает работу, предыдущие системные цвета должны быть восстановлены.

Если функция возвращает значение SYSPAL_ERROR, контекст указанного устройства недопустим или фактически не поддерживает цветовые палитры.

Приложение должно вызвать эту функцию только тогда, когда, его окно развернуто и имеет фокус ввода.

Если приложение вызывает SetSystemPaletteUse с установкой параметра uUsage в SYSPAL_NOSTATIC, система продолжает устанавливать отдельно две записи в системной палитре для чистого белого цвета и чистого черного цвета, соответственно.

После вызова этой функции с параметром uUsage установленным в SYSPAL_NOSTATIC, приложение должно принять нижеследующие меры:

  1. Реализовать логическую палитру.
  2. Вызвать функцию GetSysColor, чтобы сохранить текущие установки системного цвета.
  3. Вызвать функцию SetSysColors, чтобы установить корректные значения системных цветов, используя черный и белый цвет.
  4. Передать сообщение WM_SYSCOLORCHANGE другим окнам верхнего уровня, которое даст им возможность быть перерисованными в новой системе цветов.

Когда окно приложения теряет фокус или закрывается, приложение должно выполнить следующие действия:

  1. Вызвать функцию SetSystemPaletteUse с параметром uUsage установленным в SYSPAL_STATIC.
  2. Реализовать логическую палитру.
  3. Восстановить системные цвета с их предыдущими значениями.
  4. Отправить сообщение WM_SYSCOLORCHANGE.

Смотри также

Обзор Цвета, Функции, используемые цветом,  GetDeviceCaps, GetSysColor, SetSysColors, GetSystemPaletteUse

Размещение и совместимость SetSystemPaletteUse

К Windows XP Да 
л Windows 2000 Professional Да
и Windows NT Workstation Да версии 3.1 и выше
е Windows Me Да
н Windows 98 Да
т Windows 95 Да
 
С Windows Server 2003 Да
е Windows 2000 Server Да
р Windows NT Server Да
в    
е    
р    
Используемая библиотека Gdi32.lib
Используемая DLL -
 Заголовочный файл  
- объявлено в Wingdi.h
 - включено в Windows.h
 Unicode Нет
 Замечания по платформе Не имеется

 

Назад в оглавление
На главную страницу
В оглавление справки

Hosted by uCoz