Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Давно искал функцию для проверки цвета, содержится ли в нём оттенок тёмного или светлого, и наконец (с небольшой, однако значительной помощью на оф. форуме) мне удалось сделать подобную функию:

Код: Выделить весь код
#include <GuiConstants.au3>
#include <Misc.au3>

Global $Bk_Color = 0xFFFFFF

$GUI = GUICreate("_ColorIsDarkShade Demo", 300, 200)

$Label = GUICtrlCreateLabel("Some Text", 20, 40, 55, 14)
GUICtrlSetBkColor(-1, $Bk_Color)

$ColorSet_Button = GUICtrlCreateButton("Set Color", 20, 80)

GUISetState(@SW_SHOW, $GUI)

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $ColorSet_Button
            $Bk_Color = _ChooseColor(2, $Bk_Color, 2, $GUI)
            Local $sShade = _ColorIsDarkShade($Bk_Color)

            GUICtrlSetBkColor($Label, $Bk_Color)

            If $sShade Then
                GUICtrlSetColor($Label, 0xFFFFFF)
            Else
                GUICtrlSetColor($Label, 0x000000)
            EndIf
    EndSwitch
WEnd

Func _ColorIsDarkShade($nColor)
    Local $i_Red = BitAND(BitShift($nColor, 16), 0xFF)
    Local $i_Green = BitAND(BitShift($nColor, 8), 0xFF)
    Local $i_Blue = BitAND($nColor, 0xFF)

    Local $iMidle_Color_Val = Int(765 / 2) ;765 is the total of 255 + 255 + 255

    Return ($i_Red + $i_Green + $i_Blue) < $iMidle_Color_Val
EndFunc
Суть в том, что если юзер выбрал тёмный/светлый цвет, то цвет текста соответственно меняется на противоположный (и вто время видимый на фоне) цвет .

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

Это сообщение посчитали полезным следующие участники:

Отправлено: 09:05, 04-02-2008 | #82