Что нового

[Элементы GUI] установить прозрачность отдельно для каждого элемента и для окна

RomchegChe

Новичок
Сообщения
37
Репутация
1
Здравствуйте, Уважаемые!
Делаю прозрачное окно и хочу что бы прозрачность каждого элемента менялась. То есть окно полностью прозрачное, и прозрачность каждого элемента может быть как полностью прозрачной, так и полностью непрозрачной. Пока нашел только решение делать каждый элемент отдельным окном, но это как то криво, мне кажется.
Вот пример полупрозрачное окно с 2мя элементами, но тут прозрачность их все время будет одинаковая
Код:
#include <GUIConstantsEx.au3>
$hGUI = GUICreate('Test', 300, 60)
$Label1 = GUICtrlCreateLabel('', 0, 0, 300, 30, -1)
GUICtrlSetBkColor($Label1, 0xFF0000)
$Label2 = GUICtrlCreateLabel('', 0, 30, 300, 30, -1)
GUICtrlSetBkColor($Label2, 0x0000FF)
WinSetTrans($hGUI,"",100)
GUISetState()
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
 
Автор
R

RomchegChe

Новичок
Сообщения
37
Репутация
1
вот еще пример, прозрачность меняется у надписей одновременно, а требуется что бы менялась по очереди
Код:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <WINAPI.au3>
$hGui = GUICreate("Тест прозрачности", 300, 400, -1, -1, -1, $WS_EX_LAYERED)
GUICtrlCreateLabel("Этот текст на прозрачном слое GUI", 10, 10, 200, 20, -1)
GUISetBkColor(0xABCDEF)
_WinAPI_SetLayeredWindowAttributes($hGui, 0x010101)
GUISetState()
GUICtrlCreateLabel("Установка прозрачности многослойного GUI", 10, 70)
GUISetState()
GUISetStyle($WS_POPUP, -1, $hGui)
_WinAPI_SetLayeredWindowAttributes($hGui, 0xABCDEF, 255)
$n = 0
While 1
Sleep(50)
$n = $n + 5
   _WinAPI_SetLayeredWindowAttributes($hGui, 0xABCDEF, 255 - $n)
WEnd
 
Верх