Функция SetSysColors

Declare Function SetSysColors Lib "user32" Alias "SetSysColors" (ByVal nChanges As Long, lpSysColor As Long, lpColorValues As Long) As Long
SetSysColors меняет системные цвета, используемые Windows. Windows использует системные цвета при отображении таких элементов, как заголовок окна, меню, Рабочий стол и тому подобное. Но эти изменения не сохраняются после перезагрузки компьютера
cElements
Число элементов в массивах, передаваемых как lpaElements и lpaRgbValues
Массив, содержащий идентификаторы всех системных цветов. Каждый элемент может быть определен как один из следующих флажков, определяющих системный цвет:
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
Цвет текста в окне
lpaRgbValues
Массив значений RGB новых системных цветов

Пример

' Изменим цвета градиента в областях
' заголовка окон наоборот. Другими словами, левый цвет
' градиента меняем с правым цветом градиента для активных
' и неактивных окон. После замены, уведомление посылается
' всем окнам, что обеспечит немедленное изменение во всех
' окнах. Конечно, этот пример не будет работать должным
' образом в 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

Смотри также

GetSysColor

Категория

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