Функция _GUICtrlMonthCal_GetColorArray

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


_GUICtrlMonthCal_GetColorArray

Возвращает цвет указанного участка элемента

#include <GuiMonthCal.au3>
_GUICtrlMonthCal_GetColorArray($hWnd, $iColor)

Параметры

$hWnd Дескриптор или идентификатор элемента
$iColor Указывает, цвет какого участка элемента необходимо получить:
    Это может быть одним из следующих значений:
    $MCSC_BACKGROUND - Цвет фона между месяцами
    $MCSC_MONTHBK - Цвет фона месяцев
    $MCSC_TEXT - Цвет текста дней указанного месяца
    $MCSC_TITLEBK - Цвет фона в заголовке календаря и выбранный день
    $MCSC_TITLETEXT - Цвет текста в заголовке календаря и выбранный день
    $MCSC_TRAILINGTEXT - Цвет текста для дней, которые не принадлежат указанному месяцу

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

Успех: Возвращает массив следующего формата:

    [0] - Количество возвращённых элементов
    [1] - COLORREF rgbcolor
    [2] - Шестнадцатеричный цвет в формате BGR
    [3] - Шестнадцатеричный цвет в формате RGB
Ошибка: Возвращает False

Примечания

Начальные и конечные дни, это те дни, которые принадлежат предыдущему и последующему месяцу, отображаемые на текущем календаре месяца.

См. также

_GUICtrlMonthCal_Create

Пример

#include <GUIConstantsEx.au3>
#include <GuiMonthCal.au3>
#include <EditConstants.au3>
#include <WindowsConstants.au3>
#include <Constants.au3>

$Debug_MC = False ; Проверяет ClassName передаваемый в MonthCal функции. Установите True и используйте дескриптор от другого элемента, чтобы увидеть как это работает

Global $iMemo

_Main()

Func _Main()
    Local $hMonthCal

    ; Создаёт GUI
    GUICreate("Получает массив цвета", 425, 300)
    $hMonthCal = GUICtrlCreateMonthCal("", 4, 4, -1, -1, $WS_BORDER, 0x00000000)

    ; Создаёт элемент для заметок
    $iMemo = GUICtrlCreateEdit("", 4, 188, 417, 108, BitOR($WS_VSCROLL, $ES_MULTILINE))
    GUICtrlSetFont($iMemo, 9, 400, 0, "Courier New")
    GUICtrlSendMsg($iMemo, $EM_SETREADONLY, True, 0)
    GUICtrlSetBkColor($iMemo, 0xFFFFFF)
    GUISetState()

    ; _GUICtrlMonthCal_SetColor($hMonthCal, $MCSC_MONTHBK, $CLR_MONEYGREEN)
    _GUICtrlMonthCal_SetColor($hMonthCal, $MCSC_TITLEBK, 0xC4FFFF) ; фон заголовка
    _GUICtrlMonthCal_SetColor($hMonthCal, $MCSC_MONTHBK, 0x87C4FF) ; фон календаря

    ; Получает массив цвета элементов календаря
    MemoWrite(_FormatOutPut("Цвет фона между месяцами:", _GUICtrlMonthCal_GetColorArray($hMonthCal, $MCSC_BACKGROUND)))
    MemoWrite(_FormatOutPut(@CRLF & "Цвет фона месяцев:", _GUICtrlMonthCal_GetColorArray($hMonthCal, $MCSC_MONTHBK)))
    MemoWrite(_FormatOutPut(@CRLF & "Цвет текста дней указанного месяца:", _GUICtrlMonthCal_GetColorArray($hMonthCal, $MCSC_TEXT)))
    MemoWrite(_FormatOutPut(@CRLF & "Цвет фона в заголовке календаря и выбранный день:", _GUICtrlMonthCal_GetColorArray($hMonthCal, $MCSC_TITLEBK)))
    MemoWrite(_FormatOutPut(@CRLF & "Цвет текста в заголовке календаря и выбранный день:", _GUICtrlMonthCal_GetColorArray($hMonthCal, $MCSC_TITLETEXT)))
    MemoWrite(_FormatOutPut(@CRLF & "Цвет текста для дней, которые не принадлежат указанному месяцу:", _GUICtrlMonthCal_GetColorArray($hMonthCal, $MCSC_TRAILINGTEXT)))

    ; Цикл выполняется, пока окно не будет закрыто
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUIDelete()
EndFunc   ;==>_Main

Func _FormatOutPut($sText, $aColors)
    Return $sText & _
            @CRLF & @TAB & "COLORREF rgbcolor:" & @TAB & $aColors[1] & _
            @CRLF & @TAB & "Hex BGR color:" & @TAB & @TAB & $aColors[2] & _
            @CRLF & @TAB & "Hex RGB color:" & @TAB & @TAB & $aColors[3]
EndFunc   ;==>_FormatOutPut

; Записывает строку в элемент для заметок
Func MemoWrite($sMessage)
    GUICtrlSetData($iMemo, $sMessage & @CRLF, 1)
EndFunc   ;==>MemoWrite