1 (изменено: morgan, 2019-01-31 18:49:34)

Тема: AHK: Прозрачность для элемента в окне (скрипта).

Добрый вечер. Давно хотел разобраться с этим. В общем, мне необходимо, чтобы я мог менять прозрачность элемента на определенный процент или число.
Например,

WinSet, Transparent, 200, Untitled - Notepad

тоже самое, только не с окном, а с его элементом.

-- Оффтоп --
Также, я приношу свои извинения всему форуму, что я о нем "разочаровываюсь". Беру свои слова обратно, так как мне тут неоднократно помогали. Кто просматривает эту тему, напишите "извиняю" или "прощаю", чтобы на душе было легче.

2

Re: AHK: Прозрачность для элемента в окне (скрипта).

Прозрачные элементы GUI не могут быть реализованы нативно. Их нужно либо рисовать при помощи GDI+, либо в контроле ActiveX.

3

Re: AHK: Прозрачность для элемента в окне (скрипта).

А какой интерес делать Checkbox, Edit, Text и т. д. прозрачными? Чтобы показать, что элемент неактивен, есть опция "disable". Чтобы скрывать / показывать группы элементов управления, существуют вкладки "tab".

4

Re: AHK: Прозрачность для элемента в окне (скрипта).

ypppu, Я хочу сделать плавное появление текста (анимацию).

5

Re: AHK: Прозрачность для элемента в окне (скрипта).

Если только это, можно сделать отдельное окно с текстом и прикрепить его поверх основного окна.

6

Re: AHK: Прозрачность для элемента в окне (скрипта).

ypppu
Я тоже так сначала решил сделать, но думал, что можно другим способом. Но есть проблема. Окно то может пользователь передвинуть. А текст на месте будет. Или серьезно можно сделать окно поверх окна (чтобы сохранял размер, координаты (куда передвинул))?

7

Re: AHK: Прозрачность для элемента в окне (скрипта).

Как-то можно, только нужно по форуму поискать. Попробуйте по словам "привязка окна".

8

Re: AHK: Прозрачность для элемента в окне (скрипта).

ypppu
Ничего не нашел.

9

Re: AHK: Прозрачность для элемента в окне (скрипта).

Просто цвет текста менять можно.

10

Re: AHK: Прозрачность для элемента в окне (скрипта).

Вот такой пример был.

SetWinDelay, 0
global hMainGui, hChildGui, hWorkGui

Gui, Main: +hwndhMainGui +LastFound
Gui, Child: +hwndhChildGui -Caption +ParentMain
Gui, Child: Color, 123456
WinSet, TransColor, 123456
Gui, Main: Add, Button, x227 y167 w65 h23 gPlay, Play
Gui, Main: Show, w300 h200
Gui, Child: Show, x10 y10 w280 h150

Gui, Work: +hwndhWorkGui -Caption +ToolWindow +LastFound +OwnerMain
Gui, Work: Add, ActiveX, x0 y0 w280 h150 vWMP, WMPlayer.OCX.7
WMP.url := A_WinDir "\Media\tada.wav"
WMP.controls.stop

WinSet, ExStyle, +0x8000000   ; WS_EX_NOACTIVATE
WinSet, Transparent, 150
WinGetPos, X, Y,,, ahk_id %hChildGui%
Gui, Work: Show, x%X% y%Y% w280 h150 NA

DllCall("RegisterShellHookWindow", "UInt", A_ScriptHwnd) 
OnMessage(DllCall("RegisterWindowMessage", "str", "SHELLHOOK"), "ShellProc")
OnMessage(0x3, "WM_MOVE")
OnExit, Exit
Return

Play:
   WMP.controls.play
   Return

Exit:
   DllCall("DeregisterShellHookWindow", "UInt", A_ScriptHwnd)
   ExitApp

MainGuiClose:
   Gui, Main: Cancel
   ExitApp
   
WM_MOVE(wp, lp, msg, hwnd)
{
   if (hwnd != hMainGui)
      Return
   
   WinGetPos, X, Y,,, ahk_id %hChildGui%
   Gui, Work: Show, x%X% y%Y% NA
}

ShellProc(nCode, wParam)
{ 
   if (nCode = 4 && WinActive("ahk_id" hWorkGui))   ; HSHELL_WINDOWACTIVATED := 4
      WinActivate, ahk_id %hMainGui%
}