Что нового

[Элементы GUI] Прозрачные окна

Сообщения
28
Репутация
-3
Вот точно помню, что видел ГДЕ ТО в мануале по АвтоИТ при создании окна можно указать его прозрачность в процентах. Может кто помнит, где это ?

Задача- при нажатии кнопки в окне облльшом окрывается маленькое.Хочу, чтою в это время большое окно стало чуть чуть прозрачным.... вот... или какой оператор так делает ???
PS не юзал прозрачность - с своих скриптах не где вычитать.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
WinSetTrans()?
 

ynbIpb

Скриптер
Сообщения
399
Репутация
110
и на собственное окно тоже этой командой назначается прозрачность?
или для собственного есть другие?
просто сомнения, зачем тогда стиль при создании ГУИ: $WS_EX_TRANSPARENT
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1,590
Репутация
341
Видишь ли. На WinSetTrans() можно сделать слайдер, и менять его значения постоянно, то бишь в любое время когда захочется.
$WS_EX_TRANSPARENT - Мне кажется задает установленное и неизменяемое значение прозрачности окна :smile: Но могу и ошибаться т.к. не проверял
 

ynbIpb

Скриптер
Сообщения
399
Репутация
110
воде дошло. $WS_EX_TRANSPARENT делает прозрачным только бэкграунд окна, а контролы остаются видимыми. Но прозрачность какаята странная.
если на фоне рабочего стола, то окно не прозрачно, а если на фоне какогонибудь другого окна, то прозрачное. пчему так?
Код:
#include <GUIConstants.au3>
#include <WindowsConstants.au3>

$Form1 = GUICreate("Form1", 161, 105, 193, 125, -1, $WS_EX_TRANSPARENT)
$Button1 = GUICtrlCreateButton("Button1", 64, 12, 75, 25, 0)
$Input1 = GUICtrlCreateInput("Input1", 8, 60, 121, 21)
$Label1 = GUICtrlCreateLabel("Label1", 16, 16, 36, 17)
GUISetState(@SW_SHOW)

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit

	EndSwitch
WEnd
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1,590
Репутация
341
А у меня оно не прозрачное совсем))) Т.к. Windows 7 :blum:
 

ynbIpb

Скриптер
Сообщения
399
Репутация
110
Ну ладно. Тут другая проблема:
замутил я гуи с прозрачной картинкой, но ещё мне его нужно сделать полупрозрачным. Так вот когда включаю WinSetTrans(), проявляется фон картинки (который типа прозрачный)
fgrg1.jpg
 

Redline

AutoIT Гуру
Сообщения
506
Репутация
375
ynbIpb сказал(а):
замутил я гуи с прозрачной картинкой, но ещё мне его нужно сделать полупрозрачным. Так вот когда включаю WinSetTrans(), проявляется фон картинки (который типа прозрачный)

Вот посмотри эти темы:
http://www.autoitscript.com/forum/index.php?s=&showtopic=60400&view=findpost&p=454249
http://autoit-script.ru/index.php/topic,326.msg2194.html#msg2194
 

ynbIpb

Скриптер
Сообщения
399
Репутация
110
Спасибо, поизучаю. Просто хотелось без усложнений, максимально просто.
з.ы.
Ещё вопрос: я в верхней картинке использую стиль $GUI_WS_EX_PARENTDRAG, чтобы можно было таскать окно за заголовок, но из-за этого я немогу нажать ни на один контрол, находящийся на этой картинке. Чтобы контролы нажимались картинка должна стать фоном (для этого надо: GuiCtrlSetState(-1,$GUI_DISABLE) или стиль $WS_CLIPSIBLINGS), но тогда окно не будет таскаться. Есть ли способы решить это малой кровью?
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
ynbIpb [?]
немогу нажать ни на один контрол, находящийся на этой картинке
Картинку можно задисейблить (сорри, но на русском не нашёл подходящего термина :smile: )...

Код:
GUICtrlSetState($Pic, $GUI_DISABLE)
 

ynbIpb

Скриптер
Сообщения
399
Репутация
110
я об этом писал. В том то и проблема, если задисейблить, то не работает таскание окна за эту картинку ($GUI_WS_EX_PARENTDRAG). Вижу единственный выход: резать картинку на куски и часть дисейблить
 

ynbIpb

Скриптер
Сообщения
399
Репутация
110
Вобщем сделал так:
29556206.png

разделил картинку заголовка на 4 куска. на 1,2,3 повесил стиль $GUI_WS_EX_PARENTDRAG, а на 4 Exit в цикле.
 

IgRo

Знающий
Сообщения
65
Репутация
5
ynbIpb
Приведите пример вашей GUI из кусков
 
Верх