Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] GUICtrlCreateRadio - как задать прозрачный фон?

Ответить
Настройки темы
[решено] GUICtrlCreateRadio - как задать прозрачный фон?

Аватара для Centrinar

Старожил


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

Профиль | Цитировать


GUICtrlCreateRadio ("Тест", 10, 55, 90, 20)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)

Не работает...

Отправлено: 19:54, 18-06-2010

 

Аватара для Creat0R

Must AutoIt


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

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


Только так:

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

GUICreate("Transparent Radio Button", 265, 210, -1, -1, -1, 0x00000218)
GUISetBkColor(0x0)

; Make a group.
$Group = GUICtrlCreateGroup("", 10, 10, 245, 170)

; Radio buttons.
$aRadio1 = _GUICtrlCreateRadio("Radio 1", 20, 30, 80, 15, $GUI_BKCOLOR_TRANSPARENT, 0x00FF00) ; Green
$aRadio2 = _GUICtrlCreateRadio("Radio 2", 20, 50, 80, 15, $GUI_BKCOLOR_TRANSPARENT, 0xFFFFFF) ; White
$aRadio3 = _GUICtrlCreateRadio("Radio 3", 20, 70, 80, 15, $GUI_BKCOLOR_TRANSPARENT, 0xFF0000) ; Red
$aRadio4 = _GUICtrlCreateRadio("Radio 4", 20, 90, 80, 15, $GUI_BKCOLOR_TRANSPARENT, 0x0000FF) ; Blue
$aRadio5 = _GUICtrlCreateRadio("Radio 5", 20, 110, 80, 15, $GUI_BKCOLOR_TRANSPARENT, 0xCCCCCC) ; Gray
$aRadio6 = _GUICtrlCreateRadio("Radio 6", 20, 130, 80, 15, $GUI_BKCOLOR_TRANSPARENT, 0xCC00FF) ; Purple
$aRadio7 = _GUICtrlCreateRadio("Radio 7", 20, 150, 80, 15, $GUI_BKCOLOR_TRANSPARENT, 0x00CCFF) ; Green-Blue

GUISetState(@SW_SHOW)

While 1
    $nMsg = GUIGetMsg()

    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $aRadio1[0] To $aRadio7[0], $aRadio1[1] To $aRadio7[1]
            For $i = 1 To 7
                $vRadio = Execute("$aRadio" & $i & "[0]")

                GUICtrlSetState($vRadio, $GUI_UNCHECKED)

                If $vRadio = $nMsg - 1 Or $vRadio = $nMsg Then
                    GUICtrlSetState($vRadio, $GUI_CHECKED)
                EndIf
            Next
    EndSwitch
Wend

Func _GUICtrlCreateRadio($sText, $iLeft, $iTop, $iLength, $iHieght, $sBackColor = "" , $sTextColor = "")
    Local $aRadioID[2]

    $aRadioID[0] = GUICtrlCreateRadio("", $iLeft, $iTop, 12, 12)
    $aRadioID[1] = GUICtrlCreateLabel($sText, $iLeft + 15, $iTop, $iLength - 15, $iHieght)

    If $sTextColor <> "" And $aRadioID[1] Then
        GUICtrlSetColor($aRadioID[1], $sTextColor)
    EndIf

    If $sBackColor <> "" And $aRadioID[1] Then
        GUICtrlSetBkColor($aRadioID[1], $sBackColor)
    EndIf

    Return $aRadioID
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

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

Отправлено: 23:40, 18-06-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для FlatX007

Ветеран


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

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


Цитата Centrinar:
GUICtrlCreateRadio ("Тест", 10, 55, 90, 20)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
Не работает... »
http://forum.oszone.net/post-1415918-4.html
Не находите ли сходство в функциях
Это сообщение посчитали полезным следующие участники:

Отправлено: 01:21, 19-06-2010 | #3


Аватара для Centrinar

Старожил


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

Профиль | Цитировать


Код: Выделить весь код
...
$radio_1 = _GUICtrlCreateRadio("Тест", 10, 25, 90, 20, $GUI_BKCOLOR_TRANSPARENT, 0xFFFFFF) 
 GUICtrlSetState($radio_1, $GUI_CHECKED)
...
Он не хочет ставить $radio_1 по умолчанию!?

Отправлено: 15:38, 21-06-2010 | #4


Аватара для Creat0R

Must AutoIt


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

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


Цитата Centrinar:
Он не хочет ставить $radio_1 по умолчанию »
А если заглянуть в функцию (или хотябы в цикл где она обрабатывается)? она возвращает массив, где [0] это идентификатор от Radio, а [1] идентификатор Label'а, соответственно нужно использовать первый элемент:

Код: Выделить весь код
$radio_1 = _GUICtrlCreateRadio("Тест", 10, 25, 90, 20, $GUI_BKCOLOR_TRANSPARENT, 0xFFFFFF) 
GUICtrlSetState($radio_1[0], $GUI_CHECKED)
Можно конечно поменять их местами в функции:

Код: Выделить весь код
Func _GUICtrlCreateRadio($sText, $iLeft, $iTop, $iLength, $iHieght, $sBackColor = "", $sTextColor = "")
    Local $aRadioID[2]

    $aRadioID[0] = GUICtrlCreateLabel($sText, $iLeft + 15, $iTop, $iLength - 15, $iHieght)
    $aRadioID[1] = GUICtrlCreateRadio("", $iLeft, $iTop, 12, 12)

    If $sTextColor <> "" And $aRadioID[0] Then
        GUICtrlSetColor($aRadioID[0], $sTextColor)
    EndIf

    If $sBackColor <> "" And $aRadioID[0] Then
        GUICtrlSetBkColor($aRadioID[0], $sBackColor)
    EndIf

    Return $aRadioID
EndFunc
тогда можно будет использовать -1 как во встроенных функциях.

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

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

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

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

Отправлено: 16:24, 21-06-2010 | #5


Аватара для Centrinar

Старожил


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

Профиль | Цитировать


Создаю окно, задаю цвет прозрачный, задаю фоновую картинку в итоге вогруг $aRadio появляються черные пятна
Код: Выделить весь код
GUISetBkColor($GUI_BKCOLOR_TRANSPARENT)
	GUICtrlCreatePic(@ScriptDir & "\test.jpg", 0, 0, 320, 260, $WS_CLIPSIBLINGS)

Отправлено: 18:46, 21-06-2010 | #6


Аватара для Creat0R

Must AutoIt


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

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


Цитата Centrinar:
в итоге вогруг $aRadio появляються черные пятна
Код: »
Могу ещё предложить отключать WinXP стилизацию для элементов, в принципе из за этого такие проблемы с прозрачностью...

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

GUICreate("My GUI", 400, 330)

GUICtrlCreatePic(@WindowsDir & "\Web\Wallpaper\Windows XP.jpg", 0, 0, 400, 330, $WS_CLIPSIBLINGS)

_GUICtrlCreateRadio("Radio 1", 10, 10, 120, 15, $GUI_BKCOLOR_TRANSPARENT, 0xFFFFFF)

GUISetState()

While GUIGetMsg() <> $GUI_EVENT_CLOSE
WEnd

Func _GUICtrlCreateRadio($sText, $iLeft, $iTop, $iWidth, $iHeight, $sBackColor = "", $sTextColor = "")
    Local $nID = GUICtrlCreateRadio($sText, $iLeft, $iTop, $iWidth, $iHeight)
    DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($nID), "wstr", "", "wstr", "")

    If $sTextColor <> "" And $nID Then
        GUICtrlSetColor($nID, $sTextColor)
    EndIf

    If $sBackColor <> "" And $nID Then
        GUICtrlSetBkColor($nID, $sBackColor)
    EndIf

    Return $nID
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

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

Отправлено: 22:08, 21-06-2010 | #7



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] GUICtrlCreateRadio - как задать прозрачный фон?

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Прозрачный фон под текстом D_Master AutoIt 1 02-04-2009 09:49
Прозрачный фон под ярлыками на раб. столе wale Хочу все знать 4 18-07-2007 10:24
Как задать папке WinXP свой фон? John2000 Microsoft Windows 2000/XP 6 12-03-2006 13:49
Как обмануть прозрачный прокси? DANTIST Сетевые технологии 3 04-02-2006 18:05
Прозрачный фон иконок рабочего стола smusmumrik Хочу все знать 8 11-12-2003 03:11




 
Переход