1 (изменено: serzh82saratov, 2019-04-09 23:55:20)

Тема: AHK: Эффекты окон - Blur, Glass, TransParent, TransColor.

Из рубрики - а вдруг.
Реально ли в Windows 10 отобразить рамку и заголовок окна как Windows 7?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

2

Re: AHK: Эффекты окон - Blur, Glass, TransParent, TransColor.

Что еще за рамка и заголовок? Нужен стиль, эффект Aero, или и то и другое?
Для всей системы или для отдельного окна?

3

Re: AHK: Эффекты окон - Blur, Glass, TransParent, TransColor.

Полупрозрачная рамка для отдельного окна.

https://i.imgur.com/7CNMl0P.png

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

4

Re: AHK: Эффекты окон - Blur, Glass, TransParent, TransColor.

И так.
https://i.imgur.com/IX28ceD.png

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

5

Re: AHK: Эффекты окон - Blur, Glass, TransParent, TransColor.

Для всей системы Aero видел, для отдельного окна не уверен.

6

Re: AHK: Эффекты окон - Blur, Glass, TransParent, TransColor.

Хотя да, это возможно, используя недокументированное SetWindowCompositionAttribute API.
https://i.stack.imgur.com/OPeCz.png
Что касается стиля кнопок и углов, то они контролируются, как ни странно, стилем. Можете взять его из готовых решений предлагающих переделать стиль под Windows 7. Применить стиль можно с помощью GUI Skinning Methods.

P.S.
Совсем забыл, serzh82saratov'у ведь можно писать только на великом и могучем, а по обеим ссылкам нерусский текст.
Придется ему снова выбирать — сплевывать или сглатывать.

7 (изменено: serzh82saratov, 2019-03-31 17:43:10)

Re: AHK: Эффекты окон - Blur, Glass, TransParent, TransColor.

В заголовке под текстом ещё бы фон попрозрачнее...

stealzy пишет:

Придется ему снова выбирать

Придется, такая жизнь.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

8

Re: AHK: Эффекты окон - Blur, Glass, TransParent, TransColor.

Теперь интересно, можно ли перенести это на семёрку, как есть, то есть только блюр, без зеркального эффекта.



EnableBlur(gHwnd)
{
    ; WindowCompositionAttribute
    WCA_ACCENT_POLICY := 19
    
    ; AccentState
    ACCENT_DISABLED := 0,
    ACCENT_ENABLE_GRADIENT := 1,
    ACCENT_ENABLE_TRANSPARENTGRADIENT := 2
    ACCENT_ENABLE_BLURBEHIND := 3
    ACCENT_INVALID_STATE := 4

    accentStructSize := VarSetCapacity(AccentPolicy, 4*4, 0)
    NumPut(ACCENT_ENABLE_BLURBEHIND, AccentPolicy, 0, "UInt")

    padding := A_PtrSize == 8 ? 4 : 0
    VarSetCapacity(WindowCompositionAttributeData, 4 + padding + A_PtrSize + 4 + padding)
    NumPut(WCA_ACCENT_POLICY, WindowCompositionAttributeData, 0, "UInt")
    NumPut(&AccentPolicy, WindowCompositionAttributeData, 4 + padding, "Ptr")
    NumPut(accentStructSize, WindowCompositionAttributeData, 4 + padding + A_PtrSize, "UInt")
    
    DllCall("SetWindowCompositionAttribute", "Ptr", gHwnd, "Ptr", &WindowCompositionAttributeData)
}


Gui +LastFound +hwndgHwnd  +AlwaysOnTop -Caption 
Gui, Color, 000000
; WinSet, TransColor, 000000
Gui, Font, s64, Segoe UI
Gui, Add, Text, x0 y200 w500 Center cWhite, Hello Blur!
Gui, Show, w500 h500 Center
EnableBlur(gHwnd)

И как всё таки добиться зеркального эффекта в 10.

Зеркальный эффект.
https://i.imgur.com/IJ5sooR.png

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

9

Re: AHK: Эффекты окон - Blur, Glass, TransParent, TransColor.

Я же говорю, такие времена, что только с кем не бывает.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

10

Re: AHK: Эффекты окон - Blur, Glass, TransParent, TransColor.

На Windows 7 текст в контролах почему то прозрачный, судя по аналогии с окном пуск, как то это можно починить.

#SingleInstance Force
#NoEnv
 
Gui, +hwndhGui  
Gui, Color, 000000
Gui, Font, s33
Gui, Add, Button, -BackgroundTrans, Button 
Gui, Add, Text, wp Center -BackgroundTrans, Text
Gui, Add, Edit, wp Center -BackgroundTrans, Edit
Gui, Show, , % " "

VarSetCapacity(rect, 16, 0xff) ; This is the same as setting all fields to -1.
DllCall("dwmapi\DwmExtendFrameIntoClientArea", "Ptr", hGui, "Ptr", &rect)
Return 
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

11

Re: AHK: Эффекты окон - Blur, Glass, TransParent, TransColor.

Так текст с +BackgroundTrans и png картинки отображаются с обводкой TransColor.

TransColor := 0xfffff9
Gui, +hwndhGui +Resize
Gui, Color, %TransColor%
VarSetCapacity(rect, 16, 0xff) ; This is the same as setting all fields to -1.
DllCall("dwmapi\DwmExtendFrameIntoClientArea", "Ptr", hGui, "Ptr", &rect)
Gui, Font, s66 q4
Gui, Add, Button, -BackgroundTrans, Button 
Gui, Add, Text, wp Center -BackgroundTrans, Text
Gui, Add, Text, wp Center +BackgroundTrans, Text
Gui, Add, Edit, wp Center -BackgroundTrans, Edit 
Gui, Show, , % " "

WinSet, TransColor, %TransColor%,ahk_id %hGui%
DllCall("InvalidateRect", "Ptr", hGui, "Ptr", 0, "int", 0) 
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

12

Re: AHK: Эффекты окон - Blur, Glass, TransParent, TransColor.


Gui, +hwndhGui +LastFound -Caption +AlwaysOnTop
WinSet, TransParent, 0
Gui,  Show, NA w1111 h1111

Возможно ли кликнуть в полностью прозрачное окно? TransColor не хотелось бы использовать.


Gui, +hwndhGui +LastFound -Caption +AlwaysOnTop
Gui, Color, 123456
WinSet, TransColor, 123456 
Gui,  Show, NA w1111 h1111
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

13

Re: AHK: Эффекты окон - Blur, Glass, TransParent, TransColor.

Ответов не нашёл, спрошу ещё раз, может кто сталкивался.

  • Зачем нужно задавать TransColor для нормального отображения контролов в Blur.

  • Как регулировать степень Blur.

  • Как окно Blur сделать кликабельным, чтобы клики не проходили насквозь.

  • Как создать окно окно с эффектом Acrylic.  Нашёл - https://www.autohotkey.com/boards/viewtopic.php?t=63643

  • Как сделать часть окна с эффектом Acrylic



#SingleInstance Force
#Persistent
#NoEnv 
DetectHiddenWindows, On   


Gui +Resize +hWndhMain -Caption  -SysMenu 
Gui, Color, 000001
WinSet, TransColor, 000001 , ahk_id %hMain%
Gui, Font, S64 q4, Segoe UI
Gui, Add, Text, X0 Y200 W500 Center , Hello Blur!
Gui, Show, na W500 H500 Center

EnableBlur( hMain )
Return

EnableBlur( hWnd ) { 

	; WindowCompositionAttribute
	Local WCA_ACCENT_POLICY := 19

	; AccentState
	Local ACCENT_DISABLED := 0
	, ACCENT_ENABLE_GRADIENT := 1
	, ACCENT_ENABLE_TRANSPARENTGRADIENT := 2
	, ACCENT_ENABLE_BLURBEHIND := 3
	, ACCENT_INVALID_STATE := 4

	Local accentStructSize := VarSetCapacity( AccentPolicy, 4 * 4, 0 )
	NumPut( ACCENT_ENABLE_BLURBEHIND, AccentPolicy, 0, "UInt" )

	Local padding := ( A_PtrSize == 8 ? 4 : 0 )
	VarSetCapacity( WindowCompositionAttributeData, 4 + padding + A_PtrSize + 4 + padding )
	NumPut( WCA_ACCENT_POLICY, WindowCompositionAttributeData, 0, "UInt" )
	NumPut( &AccentPolicy, WindowCompositionAttributeData, 4 + padding, "Ptr" )
	NumPut( accentStructSize, WindowCompositionAttributeData, 4 + padding + A_PtrSize, "UInt" )

	DllCall( "User32.dll\SetWindowCompositionAttribute", "Ptr", hWnd, "Ptr", &WindowCompositionAttributeData )
}

GuiEscape:
GuiClose:
Escape:: ExitApp
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

14 (изменено: teadrinker, 2019-07-16 21:04:42)

Re: AHK: Эффекты окон - Blur, Glass, TransParent, TransColor.

serzh82saratov пишет:

Зачем нужно задавать TransColor для нормального отображения контролов в Blur.

Функция не документирована, но вот здесь один чувак пишет:

Rafael Rivera пишет:

Simply ensure your window uses a (background) brush with an alpha channel

Нужен бекграунд с альфа-каналом. Видимо, с обычными окнами этого можно добиться только через TransColor (попробовал через Transparent, но не работает).

serzh82saratov пишет:

Как регулировать степень Blur.

Скорее всего никак, это наверно какие-то системные настройки.

serzh82saratov пишет:

Как окно Blur сделать кликабельным, чтобы клики не проходили насквозь.

Так элементарно.

Width := 600, Height := 400

pToken := Gdip_Startup()
Gui, New, -Caption +E0x80000 +LastFound +AlwaysOnTop +ToolWindow +hwndhGui
Gui, Show, NA

hbm := CreateDIBSection(Width, Height)
hdc := CreateCompatibleDC()
obm := SelectObject(hdc, hbm)
G := Gdip_GraphicsFromHDC(hdc)
Gdip_SetSmoothingMode(G, 4)
pBrush := Gdip_BrushCreateSolid(0x770077FF)
Gdip_FillRoundedRectangle(G, pBrush, 0, 0, Width, Height, 20)
Gdip_DeleteBrush(pBrush)
Options = x0 y38p w100p Centre cFFFFFFFF r4 s60
Gdip_TextToGraphics(G, "Hello Blur!", Options, "Segoe UI", Width, Height)
UpdateLayeredWindow(hGui, hdc, 100, 100, Width, Height)
OnMessage(0x201, "WM_LBUTTONDOWN")

SelectObject(hdc, obm)
DeleteObject(hbm)
Gdip_DeleteGraphics(G)
Gdip_Shutdown(pToken)

EnableBlur(hGui)
Return

WM_LBUTTONDOWN() {
   PostMessage, WM_NCLBUTTONDOWN := 0xA1, HTCAPTION := 2
}

EnableBlur( hWnd ) { 

   ; WindowCompositionAttribute
   Local WCA_ACCENT_POLICY := 19

   ; AccentState
   Local ACCENT_DISABLED := 0
   , ACCENT_ENABLE_GRADIENT := 1
   , ACCENT_ENABLE_TRANSPARENTGRADIENT := 2
   , ACCENT_ENABLE_BLURBEHIND := 3
   , ACCENT_INVALID_STATE := 4

   Local accentStructSize := VarSetCapacity( AccentPolicy, 4 * 4, 0 )
   NumPut( 3, AccentPolicy, 0, "UInt" )

   Local padding := ( A_PtrSize == 8 ? 4 : 0 )
   VarSetCapacity( WindowCompositionAttributeData, 4 + padding + A_PtrSize + 4 + padding )
   NumPut( WCA_ACCENT_POLICY, WindowCompositionAttributeData, 0, "UInt" )
   NumPut( &AccentPolicy, WindowCompositionAttributeData, 4 + padding, "Ptr" )
   NumPut( accentStructSize, WindowCompositionAttributeData, 4 + padding + A_PtrSize, "UInt" )

   DllCall( "User32.dll\SetWindowCompositionAttribute", "Ptr", hWnd, "Ptr", &WindowCompositionAttributeData )
}
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

15

Re: AHK: Эффекты окон - Blur, Glass, TransParent, TransColor.

teadrinker пишет:

Так элементарно

Да уж, очевидно.
Но у меня текст не видно.
И что не так с панелью задач в десятке? При наложении на неё, окно мелькает.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

16

Re: AHK: Эффекты окон - Blur, Glass, TransParent, TransColor.

serzh82saratov пишет:

Но у меня текст не видно.

Шрифт забыл указать, исправил. Но у меня на десятке и так работало.

serzh82saratov пишет:

И что не так с панелью задач в десятке? При наложении на неё, окно мелькает.

У меня немного мелькает, если двигать окно, наложенное на панель задач, но не критично.

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

17

Re: AHK: Эффекты окон - Blur, Glass, TransParent, TransColor.

Так текст появился. Без указания шрифт должен быть по умолчанию, странно.
Как так не критично, мелькает же.
А как у тебя ведёт себя панель уведомлений? У меня при появлении она полупрозрачна первые пол секунды, после практически непрозрачна.
Или например у меня меню пуск почти непрозрачна, ты у себя можешь сделать фон меню например полупрозрачным?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

18 (изменено: teadrinker, 2019-07-16 21:26:51)

Re: AHK: Эффекты окон - Blur, Glass, TransParent, TransColor.

У меня по поводу прозрачности есть только одна настройка: Эффекты прозрачности вкл-выкл. При включенных панель задач и меню пуск лишь слегка прозрачны, только светлые пятна сквозь них проступают.

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

19

Re: AHK: Эффекты окон - Blur, Glass, TransParent, TransColor.

teadrinker пишет:

только светлые пятна сквозь них проступают.

Именно так.

Видел скрины что блюр в этих окнах намного прозрачнее, говорят что реестр поправь, и у всех работает, но у меня не вышло.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

20

Re: AHK: Эффекты окон - Blur, Glass, TransParent, TransColor.

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

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

21

Re: AHK: Эффекты окон - Blur, Glass, TransParent, TransColor.

Да, это я и пробовал.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

22

Re: AHK: Эффекты окон - Blur, Glass, TransParent, TransColor.

serzh82saratov пишет:

Как регулировать степень Blur.

https://www.glass8.eu
(Сам не пробовал).

23

Re: AHK: Эффекты окон - Blur, Glass, TransParent, TransColor.

Устанавливается, при запуске aerohost.exe

This service is not supposed to be executed by the user.

Я нечто подобное ставил, но всё работало с глюками.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

24

Re: AHK: Эффекты окон - Blur, Glass, TransParent, TransColor.

Как сделать часть окна с эффектом Acrylic

Думаю это должно быть доступно для разработчиков.
Например как в калькуляторе, только верхняя часть окна Acrylic.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

25

Re: AHK: Эффекты окон - Blur, Glass, TransParent, TransColor.

teadrinker пишет:

Так элементарно.

А со стандартными контролами?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

26

Re: AHK: Эффекты окон - Blur, Glass, TransParent, TransColor.

А ты такие примеры в каких-то приложениях видел?

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

27

Re: AHK: Эффекты окон - Blur, Glass, TransParent, TransColor.

EnableBlur(gHwnd)
{
    ; WindowCompositionAttribute
    WCA_ACCENT_POLICY := 19
    ; AccentState
    ACCENT_DISABLED := 0
    ACCENT_ENABLE_GRADIENT := 1
    ACCENT_ENABLE_TRANSPARENTGRADIENT := 2
    ACCENT_ENABLE_BLURBEHIND := 3
    ACCENT_INVALID_STATE := 4
	
    accentStructSize := VarSetCapacity(AccentPolicy, 4*4, 0)
    NumPut(ACCENT_ENABLE_BLURBEHIND, AccentPolicy, 0, "UInt")

    padding := A_PtrSize == 8 ? 4 : 0
    VarSetCapacity(WindowCompositionAttributeData, 4 + padding + A_PtrSize + 4 + padding)
    NumPut(WCA_ACCENT_POLICY, WindowCompositionAttributeData, 0, "UInt")
    NumPut(&AccentPolicy, WindowCompositionAttributeData, 4 + padding, "Ptr")
    NumPut(accentStructSize, WindowCompositionAttributeData, 4 + padding + A_PtrSize, "UInt")
    
      ;	DwmSetWindowAttribute https://docs.microsoft.com/ru-ru/windows/desktop/api/dwmapi/nf-dwmapi-dwmsetwindowattribute
    DllCall("SetWindowCompositionAttribute", "Ptr", gHwnd, "Ptr", &WindowCompositionAttributeData)
}


Gui +LastFound -Caption +Border +hwndgHwnd +AlwaysOnTop
Gui, Color, 000001
WinSet, TransColor, 000001
Gui, Font, s33, Segoe UI
Gui, Add, Text,     Center cWhite, Hello Blur!
Gui, Add, Text,  Center cRed , Hello Blur!

Gui, Add, Button, -BackgroundTrans, Button 
Gui, Add, Text, wp Center -Background, Text
Gui, Add, Edit, wp Center -BackgroundTrans, Edit
Gui, Show,   Center
EnableBlur(gHwnd)


GuiEscape:
GuiClose:
Escape:: ExitApp
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

28

Re: AHK: Эффекты окон - Blur, Glass, TransParent, TransColor.

Это ты что хотел показать? Клики проходят наскозь, там где blur. Я имел в виду пример, чтобы были стандартные контролы, blur, и клики не проходили насквозь.

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

29

Re: AHK: Эффекты окон - Blur, Glass, TransParent, TransColor.

Я про это и спрашиваю. Нет не видел, даже просто с блюром ни одного приложения.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

30

Re: AHK: Эффекты окон - Blur, Glass, TransParent, TransColor.

serzh82saratov пишет:

Как окно Blur сделать кликабельным, чтобы клики не проходили насквозь.

На самом деле, правильнее было бы спросить, можно ли как-то сделать фон обычного окна вне контролов частично прозрачным. Я не представляю, как.

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

31 (изменено: Malcev, 2019-07-18 20:10:45)

Re: AHK: Эффекты окон - Blur, Glass, TransParent, TransColor.

serzh82saratov пишет:

Устанавливается, при запуске aerohost.exe
"This service is not supposed to be executed by the user."
Я нечто подобное ставил, но всё работало с глюками.

А ты по инструкции запускал?

2) On Windows 8.1+, you should use host process which will inject DLL into DWM for you and also maintains that user settings are correctly loaded. Simply create schedule task to run aerohost.exe when your computer starts. This task must be created with admin privileges and run under SYSTEM account. You can find simple script to schedule such task here.

https://www.glass8.eu/guide

32

Re: AHK: Эффекты окон - Blur, Glass, TransParent, TransColor.

teadrinker пишет:

можно ли как-то сделать фон обычного окна вне контролов частично прозрачным

А что это даст в плане блюра?

Malcev пишет:

А ты по инструкции запускал?

Нет конечно.
Я думал там интерфейс есть... Ладно фиг с ним, и так почему то ОС притормаживает.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

33

Re: AHK: Эффекты окон - Blur, Glass, TransParent, TransColor.

serzh82saratov пишет:

А что это даст в плане блюра?

Не будут клики насквозь проходить.

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

34

Re: AHK: Эффекты окон - Blur, Glass, TransParent, TransColor.

Представим что сделали фон обычного окна вне контролов частично прозрачным, а блюр где будет? Ты имеешь ввиду наложить окна.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

35

Re: AHK: Эффекты окон - Blur, Glass, TransParent, TransColor.

Блюр можно применить там, где есть прозрачность, полная или частичная. Transcolor даёт полную прозрачность, соответственно клики проходят насквозь. Если была бы частичная — окно принимало бы события мыши.

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

36

Re: AHK: Эффекты окон - Blur, Glass, TransParent, TransColor.

Я подумал что ты про прозрачность всего окна, а не про прозрачность конкретного цвета.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

37

Re: AHK: Эффекты окон - Blur, Glass, TransParent, TransColor.

А почему ты решил, что я про прозрачность конкретного цвета? Нам нужно получить частичную прозрачность любым способом, но не всего окна, а именно только фона вне контролов.

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

38

Re: AHK: Эффекты окон - Blur, Glass, TransParent, TransColor.

teadrinker пишет:

Нам нужно получить частичную прозрачность любым способом, но не всего окна, а именно только фона вне контролов

Это невозможно, если окно не многослойное.

39

Re: AHK: Эффекты окон - Blur, Glass, TransParent, TransColor.

Вот всё окно, как тут блюр применить?


EnableBlur(gHwnd)
{
    ; WindowCompositionAttribute
    WCA_ACCENT_POLICY := 19
    ; AccentState
    ACCENT_DISABLED := 0
    ACCENT_ENABLE_GRADIENT := 1
    ACCENT_ENABLE_TRANSPARENTGRADIENT := 2
    ACCENT_ENABLE_BLURBEHIND := 3
    ACCENT_INVALID_STATE := 4
	
    accentStructSize := VarSetCapacity(AccentPolicy, 4*4, 0)
    NumPut(ACCENT_ENABLE_BLURBEHIND, AccentPolicy, 0, "UInt")

    padding := A_PtrSize == 8 ? 4 : 0
    VarSetCapacity(WindowCompositionAttributeData, 4 + padding + A_PtrSize + 4 + padding)
    NumPut(WCA_ACCENT_POLICY, WindowCompositionAttributeData, 0, "UInt")
    NumPut(&AccentPolicy, WindowCompositionAttributeData, 4 + padding, "Ptr")
    NumPut(accentStructSize, WindowCompositionAttributeData, 4 + padding + A_PtrSize, "UInt")
    
      ;	DwmSetWindowAttribute https://docs.microsoft.com/ru-ru/windows/desktop/api/dwmapi/nf-dwmapi-dwmsetwindowattribute
    DllCall("SetWindowCompositionAttribute", "Ptr", gHwnd, "Ptr", &WindowCompositionAttributeData)
}


Gui +LastFound -Caption +Border +hwndgHwnd +AlwaysOnTop 
WinSet, TransParent, 254
Gui, Font, s33, Segoe UI
Gui, Add, Text,     Center cWhite, Hello Blur!
Gui, Add, Text,  Center cRed , Hello Blur!

Gui, Add, Button, -BackgroundTrans, Button 
Gui, Add, Text, wp Center -Background, Text
Gui, Add, Edit, wp Center -BackgroundTrans, Edit
Gui, Show,   Center
EnableBlur(gHwnd)


GuiEscape:
GuiClose:
Escape:: ExitApp
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

40

Re: AHK: Эффекты окон - Blur, Glass, TransParent, TransColor.

Malcev пишет:

Это невозможно, если окно не многослойное.

Я подозреваю, что так и есть, но где это написано?

serzh82saratov пишет:

Вот всё окно, как тут блюр применить?

Во-первых, это не прозрачность фона, а всего окна вместе с контролами. Во-вторых, через Transparent не работает, писал выше.

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

41

Re: AHK: Эффекты окон - Blur, Glass, TransParent, TransColor.

teadrinker пишет:

А почему ты решил, что я про прозрачность конкретного цвета?

Я ничего не понимаю. Ладно, как сделать блюр без Transcolor?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

42

Re: AHK: Эффекты окон - Blur, Glass, TransParent, TransColor.

Я подвожу тебя к мысли, что с обычными окнами вообще не получится.

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

43

Re: AHK: Эффекты окон - Blur, Glass, TransParent, TransColor.

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