Функция GetSysColor

Функция GetSysColor извлекает текущий цвет указанного элемента изображения. Элементы (примитивы) изображения - это части окна и изображения, которые применяются системой для вывода на экран изображения.

Синтаксис

DWORD GetSysColor(
  int nIndex   // элемент изображения
);

Параметры

nIndex
[in] Элемент изображения, цвет которого должен извлечься. Этим параметром может быть одно из ниже перечисленных значений.

Значение Предназначение
COLOR_3DDKSHADOW Темная тень для трехмерных элементов изображения.
COLOR_3DFACE, COLOR_BTNFACE Цвет грани для трехмерных элементов изображения и для фонов диалогового окна.
COLOR_3DHILIGHT, COLOR_3DHIGHLIGHT, COLOR_BTNHILIGHT, COLOR_BTNHIGHLIGHT Цвет выделения для трехмерных элементов изображения (для граней, стоящих перед источником освещения). 
COLOR_3DLIGHT Светлый цвет для трехмерных элементов изображения (для граней, стоящих перед источником освещения).
COLOR_3DSHADOW, COLOR_BTNSHADOW Цвет тени для трехмерных элементов изображения (для граней, стоящих далеко от источника освещения).
COLOR_ACTIVEBORDER Рамка активного окна.
COLOR_ACTIVECAPTION Область заголовка активного окна.

Windows 98/Me, Windows 2000/XP:  Устанавливает цвет левой стороны в градиенте цвета области заголовка активного окна, если действие градиента разрешено.

COLOR_APPWORKSPACE Цвет фона многодокументного интерфейса  (MDI) приложения.
COLOR_BACKGROUND, COLOR_DESKTOP Рабочий стол (Desktop).
COLOR_BTNTEXT Текст на командных кнопках.
COLOR_CAPTIONTEXT Текст в заголовке, блоке управленя размером, и окошко с изображением стрелки линейки прокрутки.
COLOR_GRADIENTACTIVECAPTION Windows 98/Me, Windows 2000/XP: Цвет правой стороны в градиенте цвета области заголовка активного окна. COLOR_ACTIVECAPTION устанавливает цвет левой стороны. Используйте SPI_GETGRADIENTCAPTIONS с функцией SystemParametersInfo, чтобы выяснить, разрешается ли действие градиента.
COLOR_GRADIENTINACTIVECAPTION Windows 98/Me, Windows 2000/XP: Цвет правой стороны в градиенте цвета области заголовка неактивного окна. COLOR_INACTIVECAPTION устанавливает цвет левой стороны.
COLOR_GRAYTEXT Серый (заблокированный) текст. Этот цвет устанавливается в 0, если текущий драйвер дисплея не поддерживает сплошной серый цвет.
COLOR_HIGHLIGHT Элемент (ы) выбранные в органе управления.
COLOR_HIGHLIGHTTEXT Текст элемента (ов) выбранных в органе управления.
COLOR_HOTLIGHT Windows 98/Me, Windows 2000/XP: Цвет для подсветки пункта меню под курсором мыши. Единственный щелчок по подсвеченному пункту меню под курсором мыши исполняет этот пункт. 
COLOR_INACTIVEBORDER Рамка неактивного окна.
COLOR_INACTIVECAPTION Заголовок неактивного окна.

Windows 98/Me, Windows 2000/XP: Устанавливает цвет левой стороны в градиенте цвета области заголовка неактивного окна, если действие градиента разрешается.

COLOR_INACTIVECAPTIONTEXT Цвет текста в неактивном заголовке.
COLOR_INFOBK Цвет фона для всплывающей подсказки к органам управления.
COLOR_INFOTEXT Цвет текста для всплывающих подсказок к органам управления.
COLOR_MENU Фон меню.
COLOR_MENUHILIGHT Windows XP: Цвет, используемый для выделения пунктов меню, когда меню показывается как одноуровневое (линейное) (смоти описание функции SystemParametersInfo). Выделенный пункт меню изложен в строке COLOR_HIGHLIGHT
COLOR_MENUBAR Windows XP: Цвет фона для строки меню, когда меню показываются как одноуровневые (смотри описание SystemParametersInfo). Однако, COLOR_MENU продолжает задавать цвет фона всплывающего меню.
COLOR_MENUTEXT Текст в меню.
COLOR_SCROLLBAR  Серая область линейки прокрутки.
COLOR_WINDOW Фон окна.
COLOR_WINDOWFRAME Рамка окна.
COLOR_WINDOWTEXT Текст в окнах.

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

Функция возвращает значения красного, зеленого, синего (RGB) кодов цвета данного элемента.

Если параметр nIndex - вне диапазона допустимых значений, возвращаемое значение равняется нулю. Поскольку нуль - тоже допустимое RGB - значение, Вы не можете использовать GetSysColor, чтобы выяснить, поддерживается ли системный цвет текущей платформой. Вместо этого, используйте функцию GetSysColorBrush, которая возвращает значение ПУСТО (NULL), если цвет не поддерживается.

Замечания

Системные цвета для монохромных дисплеев обычно интерпретируются как оттенки серого.

Чтобы окрашивать кистью системного цвета, приложение должно использовать GetSysColorBrush (nIndex) вместо CreateSolidBrush (GetSysColor (nIndex)), потому что GetSysColorBrush возвращает кэшируемую кисть (вместо того, чтобы назначить новую).

Код примера

Пример, см. в статье Изменение цветов элементов окна.

Смотри также 

Обзор Системная информация, Функции, используемые системной информацией,  CreateSolidBrushGetSysColorBrush, SetSysColors, SystemParametersInfo

 

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

Windows. NET Server

Да

Windows XP

Да

Windows 2000

Да

Windows NT

Да версии 3.1 и выше

Windows Me

Да

Windows 98

Да

Windows 95

Да

Используемая библиотека

User32.lib

Заголовочный файл

 

- объявлено в

Winuser.h

- включено в

Windows.h

Unicode

Нет

Замечания по платформе

Не имеется


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

Hosted by uCoz