1

Тема: AHK: Плавное появление и пропадание надписи в OSD

Доброго времени суток!
Есть простенький скрипт - по нажатию кнопки выводит надпись:

#NoEnv
SendMode Input 
SetWorkingDir %A_ScriptDir%

MainColor = FFFFFF
XButton2::
Gui, +LastFound +AlwaysOnTop -Caption +ToolWindow
Gui, Color, %MainColor%
Gui, Font, s32
Gui, Add, Text,cRed ,Hello!
WinSet, TransColor, %MainColor% 150
Gui, Show, x0 y400 NoActivate
Sleep, 2000
Gui, Destroy
exit

Можно ли его заставить, при нажатии на кнопку, не просто выводить надпись, а сделать так чтоб надпись плавно появлялась и плавно пропадала?
Подозреваю что это можно сделать через WinSet - только вот как сделать правильно?

2

Re: AHK: Плавное появление и пропадание надписи в OSD

YMP пишет:

WinSet, Transparent, N, WinTitle
Делает окно полупрозрачным. Степень прозрачности задаётся значениями N от 0 до 255: 0 означает невидимое окно, 255 - полностью видимое.

Поставьте эту команду в цикл. Например за 31 итерацию изменять прозрачность с шагом 8 - будет довольно плавно.

3 (изменено: svoboden, 2016-10-24 09:18:14)

Re: AHK: Плавное появление и пропадание надписи в OSD

Так можно:

#NoEnv
SendMode Input 
SetWorkingDir %A_ScriptDir%


MainColor = FFFFFF
XButton2::
Gui, +LastFound +AlwaysOnTop -Caption +Hwndh_time
Gui, Color, %MainColor%
Gui, Font, s32
Gui, Add, Text,cRed ,Hello!
Gui, Show, x0 y400 NoActivate
WinSet, TransColor, %MainColor%, ahk_id %h_time%
Gui, Show, x0 y400 w200 h100

Tr := 5
Loop, 25
{
Tr := Tr + 10
WinSet, TransColor, 0000D1 %Tr%, ahk_id %h_time%
Sleep, 100
}

Sleep 500

Tr := 5
Loop, 25
{
Tr := Tr  - 10
WinSet, TransColor, 0000D1 %Tr%, ahk_id %h_time%
Sleep, 100
}

Gui, Destroy
return

4

Re: AHK: Плавное появление и пропадание надписи в OSD

svoboden пишет:

Так можно:

Вижу у вас не текст, а белый прямоугольник с текстом.

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

5 (изменено: svoboden, 2016-12-31 00:25:21)

Re: AHK: Плавное появление и пропадание надписи в OSD

Так сам ничего не менял, как было, так и оставил.

6

Re: AHK: Плавное появление и пропадание надписи в OSD

И что? В изначальном варианте-то фона нет.

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

7 (изменено: svoboden, 2017-08-07 11:30:35)

Re: AHK: Плавное появление и пропадание надписи в OSD

Вот, могу поправить код, если что не так.
Ну, какие еще вопросы ко мне будут от многоуважаемого модератора форума...?

Вот, без фона:

#NoEnv
SendMode Input 
SetWorkingDir %A_ScriptDir%
XButton2::
Gui, 2: Color, 0000D1
Gui, 2: +LastFound +AlwaysOnTop -Caption +Hwndh_time
Gui, 2: Font, s32 bold cFF0AFF
Gui, 2: Add, Text, w55 Center, Hello!
Gui, 2: Show, h0 w0
WinSet, TransColor, 0000D1 5, ahk_id %h_time%
Gui, 2: Show, x0 y400 w200 h100

Tr := 5
Loop, 25
{
Tr := Tr + 10
WinSet, TransColor, 0000D1 %Tr%, ahk_id %h_time%
Sleep, 100
}

Sleep 300

Tr := 5
Loop, 25
{
Tr := Tr  - 10
WinSet, TransColor, 0000D1 %Tr%, ahk_id %h_time%
Sleep, 100
}

Gui, 2: Destroy
return

8

Re: AHK: Плавное появление и пропадание надписи в OSD

svoboden пишет:

Ну какие еще вопросы ко мне будут от многоуважаемого модератора форума...?

Т. е. хотите сказать, что пофиг, работает код, или нет?

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

9 (изменено: V1t3r, 2016-10-25 01:45:39)

Re: AHK: Плавное появление и пропадание надписи в OSD

Спасибо за помощь с реализацией!
Еще один вопрос: можно ли сделать так, чтоб во время появления/исчезновения надписи она не находилась в фокусе(чтоб её "окно" не было активным?)

10 (изменено: svoboden, 2017-03-25 03:06:55)

Re: AHK: Плавное появление и пропадание надписи в OSD

Так, в данном случае, по-моему, код работает.

11 (изменено: svoboden, 2017-03-25 03:16:27)

Re: AHK: Плавное появление и пропадание надписи в OSD

Чтобы окно не было активным при запуске - вот пример:

#NoEnv
SendMode Input 
SetWorkingDir %A_ScriptDir%

XButton2::
Gui, 2: Color, 0000D1
Gui, 2: +LastFound +AlwaysOnTop -Caption +Hwndh_time
Gui, 2: Font, s32 bold cFF0AFF
Gui, 2: Add, Text, w55 Center, Hello!
Gui, 2: Show, NoActivate h0 w0
WinSet, TransColor, 0000D1 5, ahk_id %h_time%
Gui, 2: Show, NoActivate x0 y400 w200 h100

Tr := 5
Loop, 25
{
Tr := Tr + 10
WinSet, TransColor, 0000D1 %Tr%, ahk_id %h_time%
Sleep, 100
}

Sleep 300

Tr := 5
Loop, 25
{
Tr := Tr  - 10
WinSet, TransColor, 0000D1 %Tr%, ahk_id %h_time%
Sleep, 100
}

Gui, 2: Destroy
return