1

Тема: AHK: Прозрачное GUI окно

Приветствую.

Мне при старте программы на АНК надо вести логотип, но без всего, только картинку и не квадрантную.
Есть опция для GUI.

BackgroundTrans: использует прозрачный фон, позволяющий любому элементу управления, находящемуся под элементами управления текст (Text), рисунок (Picture) или рамка группы (GroupBox), просвечивать сквозь них. Например, если элемент управления текст отображен поверх элемента управления рисунок, то кажется, что текст является частью картинки. Используйте команду "GuiControl +background", чтобы удалить данную опцию. Чтобы получить больше информации о прозрачных изображениях, см. опцию AltSubmit элемента управления рисунок.

У меня прозрачного окна не получается или я не так пишу.

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
Эл. почта: dysansven@gmail.com Skype: indomito_64
Правила - основные.

2

Re: AHK: Прозрачное GUI окно

Наверное не так пишете.

3

Re: AHK: Прозрачное GUI окно

ypppu
А пример можно?
Самый простой, я всё скрываю, а вот прозрачность не получается.

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
Эл. почта: dysansven@gmail.com Skype: indomito_64
Правила - основные.

4

Re: AHK: Прозрачное GUI окно

Transcolor не подойдет?

Win7x64, AutoHotkey_L v1.1.24

5

Re: AHK: Прозрачное GUI окно

Тут много непонятного. Что значит "вести логотип"? Что такое "неквадрантная картинка"? Почему тема про окно, а цитата из справки - про элемент управления? Где Ваш код?

6

Re: AHK: Прозрачное GUI окно

Поддерживаю, ощущение, что вопрос написан инопланетянином.

Win7x64, AutoHotkey_L v1.1.24

7 (изменено: Indomito, 2017-03-28 00:08:18)

Re: AHK: Прозрачное GUI окно

stealzy Нет, я все границы убрал, только вот рисунок на сером фоне получается.
ypppu Цитата, я просто подумал как сделать окно прозрачным, т.е. без подложки BackgroundTrans оказалось не то что мне нужно.

Вот код,  т.е. прозрачное окно нужно с одним элементом картинкой, а у меня пока кнопка, что тоже элемент управления.

; Generated using SmartGUI Creator 4.0
Gui, New, +AlwaysOnTop -Caption -SysMenu +OwnDialogs +Owner
Gui, Add, Button, x342 y330 w100 h40 glClose, Закрыть
Gui, Show, x426 y133 h379 w479 ;, New GUI Window
Return

lClose:
  Gui,  Destroy
ExitApp

А так прозрачно всё и кнопки и окно.

Gui, New, +AlwaysOnTop -Caption -SysMenu +OwnDialogs +Owner, NewGUIWindow
Gui, Add, Button, x342 y330 w100 h40 glClose, Закрыть
Gui, Show, x426 y133 h379 w479 
WinSet, Transparent, 150, NewGUIWindow
Return

lClose:
  Gui,  Destroy
ExitApp
"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
Эл. почта: dysansven@gmail.com Skype: indomito_64
Правила - основные.

8 (изменено: KusochekDobra, 2017-03-28 00:11:23)

Re: AHK: Прозрачное GUI окно

Часы вверху, посередине, где текст на прозрачном фоне:


#SingleInstance, Force
#NoEnv
DetectHiddenWindows, On

Gui, 1: Color, 0000D1
Gui, 1: +AlwaysOnTop +ToolWindow -Caption +Hwndh_time
Gui, 1: Font, s7 Bold cFFFF00
Gui, 1: Add, Text, w55 Center
Gui, 1: Add, Button, x5 y+5 gClose,Закрыть
Gui, 1: +Lastfound
WinSet, TransColor, 0000D1, ahk_id%h_time%
Gui, 1: Show, x920 y0
SetTimer,Timer,1000
return
Timer:
	ControlSetText, Static1, % A_Hour ":" A_Min ":" A_Sec, ahk_id%h_time%
return
Close:
	ExitApp

9

Re: AHK: Прозрачное GUI окно

KusochekDobra
Спасибо, попробую разобраться с твоим кодом.

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
Эл. почта: dysansven@gmail.com Skype: indomito_64
Правила - основные.

10 (изменено: KusochekDobra, 2017-03-28 00:29:06)

Re: AHK: Прозрачное GUI окно

Делал себе для игрулек, в которых не отображается время, из-за чего, частенько выходишь за лимит времени.
Если не изменяет память, там вся соль в том, чтобы задавать цвет бэкграунда самым первым и перед тем как его сделать прозрачным установить свойство "+Lastfound". Ко всему, без "DetectHiddenWindows, On", фон не будет приобретать прозрачность. Кнопку прикрутил для наглядности.

11

Re: AHK: Прозрачное GUI окно

Всё проще немного:

Gui, +AlwaysOnTop +ToolWindow -Caption +LastFound
WinSet, TransColor, 12345
Gui, Color, 12345
Gui, Font, s48 q3
Gui, Add, Text, cDAA520, Hello, Autohotkey!
Gui, Show
KusochekDobra пишет:

Ко всему, без "DetectHiddenWindows, On", фон не будет приобретать прозрачность.

Это суеверие.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

12 (изменено: Malcev, 2017-03-28 01:18:15)

Re: AHK: Прозрачное GUI окно

KusochekDobra, +Lastfound в вашем коде нигде не используется:
https://autohotkey.com/docs/misc/WinTit … oundWindow

13

Re: AHK: Прозрачное GUI окно

Нисколечко не против, люди добрые.
Когда я это мастерил, то только постигал азы. Если сценарий запустить, то он будет работать так, как мне этого хотелось в тот момент, а в тот момент, для меня всё было танцами с бубном. С того времени не было новой нужды, поэтому заготовку оставил здесь в исходном виде, не сомневаясь в работоспособности примера. За коррективы спасибо! На ус "намотал".

И моё "суеверие", в приведённом мной же примере - было оправданно.

14 (изменено: Indomito, 2017-03-29 12:08:34)

Re: AHK: Прозрачное GUI окно

Спасибо всем, вы мне очень помогли.

Gui, +AlwaysOnTop +ToolWindow -Caption +LastFound
WinSet, TransColor, 12345
Gui, Color, 12345
Gui, Add, Picture, , C:\Logo.png
Gui, Add, Picture
Gui, Show
Return

teadrinker
Я не понял две строчки кода.

WinSet, TransColor, 12345
Gui, Color, 12345

Что такое 12345?
Поставил 0 - результат тот же.

P.S. Я часто путаюсь c GUI  в AHK

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
Эл. почта: dysansven@gmail.com Skype: indomito_64
Правила - основные.

15

Re: AHK: Прозрачное GUI окно

Indomito пишет:

Что такое 12345?

А что справка говорит, что должно быть на этом месте?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

16

Re: AHK: Прозрачное GUI окно

teadrinker
Справка говорит о прозрачности.

WinSet, TransColor, Color [N], WinTitle
Делает все пикселы выбранного цвета внутри окна прозрачными, позволяя видеть сквозь окно то, что находится под ним (не действует в Windows 9x и NT4). Щелчки мыши на невидимых пикселах проходят сквозь окно к окну, лежащему ниже. Задайте в Color название цвета или его обозначение в формате RGB (смотрите статью о SplashImage или используйте PixelGetColor в режиме RGB). Чтобы вдобавок сделать видимую часть окна частично прозрачной, добавьте пробел (не запятую) и укажите уровень прозрачности (0-255). Например: WinSet, TransColor, EEAA99 150, WinTitle

TransColor часто используется для создания надписей на экране и других визуальных эффектов. Смотрите пример создания экранной надписи в конце статьи, описывающей команду Gui.

Но почему 12345?

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
Эл. почта: dysansven@gmail.com Skype: indomito_64
Правила - основные.

17

Re: AHK: Прозрачное GUI окно

Здесь может быть любое значение, которое AHK поймёт, как значение цвета, т. е. любые цифры и буквы от A до F.

Gui, +AlwaysOnTop +ToolWindow -Caption +LastFound
WinSet, TransColor, ABC
Gui, Color, ABC
Gui, Font, s48 q3
Gui, Add, Text, cDAA520, Hello, Autohotkey!
Gui, Show

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

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

18

Re: AHK: Прозрачное GUI окно

teadrinker
Понятно - спасибо.

P.S. Меня смутило описание функции в справке - WinSet, TransColor, Color [N], WinTitle

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
Эл. почта: dysansven@gmail.com Skype: indomito_64
Правила - основные.

19

Re: AHK: Прозрачное GUI окно

Здоровья всем!
Подскажите пожалуйста, можно ли убрать окантовку текста, цветом фона, который остаётся после установки последнего прозрачным:


INIsection:=["main","clone","svz"]
; >>--++--<<  >>--++--<< 
tColor:=0x0033F4
wTextF:=60,wTextS:=80,wGroup:=wTextF+wTextS+15
Gui,1: Margin,10,10
Gui,1: +ToolWindow -Caption +Lastfound
Gui,1: Color,%tColor%
WinSet, TransColor,%tColor%
Gui,1: Font,Bold
Loop, 3 {
	Gui,1: Add,GroupBox,xm y+10 w%wGroup% h75,% INIsection[A_Index]
	Gui,1: Add,Text,xm+5 yp+15 w%wTextF% cRed,Строка1
	Gui,1: Add,Text,x+5 w%wTextS% Border,
	Gui,1: Add,Text,xm+5 y+5 w%wTextF% cRed,Строка2
	Gui,1: Add,Text,x+5 w%wTextS% Border,
	Gui,1: Add,Text,xm+5 y+5 w%wTextF% cRed,Строка3
	Gui,1: Add,Text,x+5 w%wTextS% Border,
}
Gui,1: Show,,IniReader
return
Esc::
	ExitApp

И можно ли отдельно от содержимого окна, регулировать степень прозрачности фона?

20 (изменено: teadrinker, 2017-04-12 21:15:00)

Re: AHK: Прозрачное GUI окно

Gui,1: Font, q3 Bold
KusochekDobra пишет:

И можно ли отдельно от содержимого окна, регулировать степень прозрачности фона?

Можно, но только через GDI+.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg