↑  ←  Описание функции


_WinAPI_GetSysColor

Возвращает системный цвет элементов окна

#include <WinAPI.au3>
_WinAPI_GetSysColor($iIndex)

Параметры

$iIndex Элемент, цвет которого необходимо возвратить. Может быть одним из следующих значений:
    $COLOR_3DDKSHADOW - Тёмная тень трехмерных элементов.
    $COLOR_3DFACE - Цвет поверхности трехмерных элементов и фон диалогового окна.
    $COLOR_3DHIGHLIGHT - Цвет выделенных трехмерных элементов (для краев, стоящих перед источником света.)
    $COLOR_3DHILIGHT - Цвет выделенных трехмерных элементов (для краев, стоящих перед источником света.)
    $COLOR_3DLIGHT - Светлый цвет трехмерных элементов (для краев, стоящих перед источником света.)
    $COLOR_3DSHADOW - Цвет тени трехмерных элементов (для краев противоположных источнику света).
    $COLOR_ACTIVEBORDER - Границы активного окна.
    $COLOR_ACTIVECAPTION - Заголовок активного окна.
    Цвет левой стороны градиента, если включен эффект градиента.
    $COLOR_APPWORKSPACE - Рабочая область приложения (MDI).
    $COLOR_BACKGROUND - Фон рабочего стола.
    $COLOR_BTNFACE - Цвет поверхности трехмерных элементов и фон диалогового окна.
    $COLOR_BTNHIGHLIGHT - Цвет выделенных трехмерных элементов (для краев, стоящих перед источником света.)
    $COLOR_BTNHILIGHT Цвет выделенных трехмерных элементов (для краев, стоящих перед источником света.)
    $COLOR_BTNSHADOW - Цвет тени трехмерных элементов (для краев противоположных источнику света).
    $COLOR_BTNTEXT - Цвет текста на кнопке.
    $COLOR_CAPTIONTEXT - Цвет текста в заголовке, size box, и стрелки в элементе прокрутки.
    $COLOR_DESKTOP - Фон рабочего стола.
    $COLOR_GRADIENTACTIVECAPTION - Цвет правой стороны градиента в заголовке активного окна, если включен эффект градиента.
    $COLOR_ACTIVECAPTION Заголовок активного окна.
    Используйте SPI_GETGRADIENTCAPTIONS с функцией SystemParametersInfo, чтобы определить, включен ли эффект градиента.
    $COLOR_GRADIENTINACTIVECAPTION - Цвет правой стороны градиента в заголовке не активного окна, если включен эффект градиента.
    $COLOR_INACTIVECAPTION определяет цвет левого края.
    $COLOR_GRAYTEXT - Серый текст (недоступный). Этот цвет имеет значение 0, если текущий драйвер дисплея не поддерживает solid серый цвет.
    $COLOR_HIGHLIGHT - Выделенный пункт(а) элементы (например ListView).
    $COLOR_HIGHLIGHTTEXT - Текст выделенного пункта(ов) элемента (например ListView).
    $COLOR_HOTLIGHT - Цвет ссылки или пункта, на который наведён курсор мыши.
    $COLOR_INACTIVEBORDER - Цвет границы неактивного окна.
    $COLOR_INACTIVECAPTION - Цвет заголовка неактивного окна.
    Цвет левой стороны градиента, если включен эффект градиента.
    $COLOR_INACTIVECAPTIONTEXT - Цвет текста в заголовке неактивного окна.
    $COLOR_INFOBK - Цвет фона всплывающей подсказки.
    $COLOR_INFOTEXT - Цвет текста всплывающей подсказки.
    $COLOR_MENU - Цвет фона меню.
    $COLOR_MENUHILIGHT - Цвет выделенного элемента меню, когда меню плоское.
    Выделенный пункт меню очерчен $COLOR_HIGHLIGHT.
    Это значение не поддерживается в Windows 2000.
    $COLOR_MENUBAR - Цвет фона меню, когда меню плоское.
    Однако, $COLOR_MENU продолжает определять цвет фона всплывающего меню.
    Это значение не поддерживается в Windows 2000.
    $COLOR_MENUTEXT - Цвет текста в меню.
    $COLOR_SCROLLBAR - Серая область элемента прокрутки.
    $COLOR_WINDOW - Цвет фона окна.
    $COLOR_WINDOWFRAME - Window frame.
    $COLOR_WINDOWTEXT - Цвет текста в окне.

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

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

Примечания

Для выше указанных констант необходим WindowsConstants.au3.

Если параметр $iIndex выходит за пределы диапазона, то возвращается 0. Поскольку 0 является допустимым значением RGB, то вы не можете использовать GetSysColor для определения системного цвета, поддерживаемого текущей платформой. Вместо этого используйте функцию GetSysColorBrush, которая возвращает NULL, если цвет не поддерживается.

См. также

_WinAPI_SetSysColors

См. также

Искать GetSysColor в библиотеке MSDN

Пример

#include <WindowsConstants.au3>
#include <WinAPI.au3>

_Example()

Func _Example()
    Local $aSysColor[39] = [ _
            'COLOR_3DDKSHADOW', _
            'COLOR_3DFACE', _
            'COLOR_3DHIGHLIGHT', _
            'COLOR_3DHILIGHT', _
            'COLOR_3DLIGHT', _
            'COLOR_3DSHADOW', _
            'COLOR_ACTIVEBORDER', _
            'COLOR_ACTIVECAPTION', _
            'COLOR_APPWORKSPACE', _
            'COLOR_BACKGROUND', _
            'COLOR_BTNFACE', _
            'COLOR_BTNHIGHLIGHT', _
            'COLOR_BTNHILIGHT', _
            'COLOR_BTNSHADOW', _
            'COLOR_BTNTEXT', _
            'COLOR_CAPTIONTEXT', _
            'COLOR_DESKTOP', _
            'COLOR_GRADIENTACTIVECAPTION', _
            'COLOR_ACTIVECAPTION', _
            'COLOR_GRADIENTINACTIVECAPTION', _
            'COLOR_INACTIVECAPTION', _
            'COLOR_GRAYTEXT', _
            'COLOR_HIGHLIGHT', _
            'COLOR_HIGHLIGHTTEXT', _
            'COLOR_HOTLIGHT', _
            'COLOR_INACTIVEBORDER', _
            'COLOR_INACTIVECAPTION', _
            'COLOR_INACTIVECAPTIONTEXT', _
            'COLOR_INFOBK', _
            'COLOR_INFOTEXT', _
            'COLOR_MENU', _
            'COLOR_MENUHILIGHT', _
            'COLOR_MENUBAR', _
            'COLOR_MENU', _
            'COLOR_MENUTEXT', _
            'COLOR_SCROLLBAR', _
            'COLOR_WINDOW', _
            'COLOR_WINDOWFRAME', _
            'COLOR_WINDOWTEXT']

    GUICreate('_WinAPI_GetSysColor', 480, 600)
    For $i = 0 To 38
        $n = Eval($aSysColor[$i])
        $color = _WinAPI_GetSysColor($n)
        GUICtrlCreateLabel(@tab & $n & @tab & Hex($color, 6) & @tab & '$' & $asyscolor[$i], 15, $i * 15 + 5, 450, 15)
        GUICtrlSetBkColor(-1, $color)
        If $color < 0x888888 Then
            If $color < 0x333333 Then
                GUICtrlSetColor(-1, 0x999999)
            Else
                GUICtrlSetColor(-1, 0xdddddd)
            EndIf
        EndIf
    Next
    GUISetState()
    Do
    Until GUIGetMsg() = -3
EndFunc   ;==>_Example