Функция GetSysColor

Declare Function GetSysColor Lib "user32.dll" (ByVal nIndex As Long) As Long

GetSysColor возвращает RGB-значение одного из системных цветов. Windows использует системные цвета при отображении таких элементов, как заголовок окна, меню, Рабочий стол и т.д.

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

В успешном случае функция возвращает RGB-значение системного цвета. В случае ошибки функция возвращает 0 (используйте GetLastError для получения кода ошибки)

Параметры

nIndex
Один из следующих флажков,определяющих системный цвет
COLOR_3DDKSHADOW= 21
Темный теневой цвет для трехмерных объектов
COLOR_3DFACE= COLOR_BTNFACE= 15
Передний цвет для трехмерных объектов
COLOR_3DHILIGHT=COLOR_3DHIGHLIGHT=COLOR_BTNHILIGHT=COLOR_BTNHIGHLIGHT= 20
Подсветка (напротив тени) для трехмерных объектов
COLOR_3DLIGHT= 22
Цвет (напротив тени) для трехмерных объектов
COLOR_3DSHADOW=COLOR_BTNSHADOW= 16
Цвет тени для трехмерных объектов
COLOR_ACTIVEBORDER= 10
Цвет бордюра активного окна
COLOR_ACTIVECAPTION= 2
Цвет области заголовка активного окна Windows 98, 2000: Цвет левой стороны градиента области заголовка активного окна, если используется эффект градиента
COLOR_APPWORKSPACE= 12
Цвет фона многодокументной среды окна (MDI)
COLOR_BACKGROUND= COLOR_DESKTOP=1
Цвет рабочего стола
COLOR_BTNTEXT= 18
Цвет текста в кнопках
COLOR_CAPTIONTEXT= 9
Цвет текста заголовка окна, окон размера, и полей стрелки полосы прокрутки
COLOR_GRADIENTACTIVECAPTION= 27
Windows 98, 2000:Цвет правой стороны градиента области заголовка активного окна, если используется эффект градиента
COLOR_GRADIENTINACTIVECAPTION= 28
Windows 98, 2000: Цвет правой стороны градиента области заголовка неактивного окна, если используется эффект градиента
COLOR_GRAYTEXT= 17
Цвет текста,который недоступен(затемненный)
COLOR_HIGHLIGHT= 13
Цвет,используемый для выбранных элементов
COLOR_HIGHLIGHTTEXT= 14
Цвет, используемый для текста подсвеченных(выбранных) элементов
COLOR_HOTLIGHT= 26
Windows 98, 2000: Цвет выбранного элемента, который запускается с одиночным щелчком
COLOR_INACTIVEBORDER= 11
Цвет границы неактивного окна
COLOR_INACTIVECAPTION= 3
Цвет заголовка неактивного окна Windows 98, 2000: Цвет правой стороны градиента области заголовка неактивного окна, если используется эффект градиента
COLOR_INACTIVECAPTIONTEXT= 19
Цвет текста заголовка неактивного окна
COLOR_INFOBK= 24
Цвет фона для подсказки
COLOR_INFOTEXT= 23
Цвет текста для подсказки
COLOR_MENU= 4
Цвет фона для меню
COLOR_MENUTEXT= 7
Цвет текста для меню
COLOR_SCROLLBAR= 0
Цвет серой области полосы прокрутки
COLOR_WINDOW= 5
Цвет фона окна
COLOR_WINDOWFRAME= 6
Цвет рамки окна
COLOR_WINDOWTEXT= 8
Цвет текста в окне

Пример

' Изменим цвета градиента в областях
' заголовка окон наоборот. Другими словами, лево цвет
' градиента меняем с правым цветом градиента для активных
' и неактивных окон. После замены, уведомление посылается
' всем окнам, что обеспечит немедленное изменение во всех
' окнах. Конечно, этот пример не будет работать должным
' образом в Windows 95 или Windows NT 3.1 до 4.0
' Чтобы использовать этот пример, Вы должны сначала
' разместить кнопку Command1 на форме
' *** Код для кнопки Command1 ***
Private Sub Command1_Click()
 ' Цвет левого градиента области заголовка активного окна
Dim activeLeftColor As Long
' Цвет правого градиента области заголовка активного окна
Dim activeRightColor As Long
' Цвет левого градиента области заголовка неактивного окна
Dim inactiveLeftColor As Long
' Цвет правого градиента области заголовка неактивного окна
Dim inactiveRightColor As Long
' Идентификаторы системных цветов для изменений
Dim colorNames(0 To 3) As Long
' RGB значения системных цветов для изменений
Dim colorRGBs(0 To 3) As Long
Dim retval As Long  ' возвращаемое значение
' Получаем RGB значения цветов,используемых
' в заголовках окон
activeLeftColor = GetSysColor(COLOR_ACTIVECAPTION)
activeRightColor = GetSysColor(COLOR_GRADIENTACTIVECAPTION)
inactiveLeftColor = GetSysColor(COLOR_INACTIVECAPTION)
inactiveRightColor = GetSysColor(COLOR_GRADIENTINACTIVECAPTION)
' Загружаем массивы с новыми значениями. ' Обратите внимание, как мы переключаем
' значения, используемые левой и правой сторонами этих двух градиентов
colorNames(0) = COLOR_ACTIVECAPTION
colorRGBs(0) = activeRightColor
colorNames(1) = COLOR_GRADIENTACTIVECAPTION
colorRGBs(1) = activeLeftColor
colorNames(2) = COLOR_INACTIVECAPTION
colorRGBs(2) = inactiveRightColor
colorNames(3) = COLOR_GRADIENTINACTIVECAPTION
colorRGBs(3) = inactiveLeftColor
' Заменяем системные установки цвета
retval = SetSysColors(4, colorNames(0), colorRGBs(0))
End Sub

Смотри также

SetSysColors

Категория

Системная информация