使用AHK创建半透明窗口失败,现有代码无半透明效果该如何解决?
问题原因
你的代码透明度设置失效的核心原因是WinSet, Transparent指令执行时,目标窗口还没有被创建渲染:你将该指令放在了Gui, Show之前,此时指定标题的窗口还不存在,设置自然不会生效。
修复方案
方案1:调整指令执行顺序
直接把透明度设置代码移到Gui, Show之后即可,不需要修改其他原有逻辑:
WinTitle := "mywin" Gui, New, , %WinTitle% Gui, Color, 0x000000 w := A_ScreenWidth/4 h := A_ScreenHeight/4 Gui, Show, x100 y100 w%w% h%h% WinSet, Transparent, 150, %WinTitle%
方案2:更可靠的LastFound写法
给Gui添加+LastFound属性后,WinSet指令可以直接作用于该Gui窗口,不需要指定窗口标题,也不会受同名窗口干扰,设置语句可以放在Gui, Show之前:
WinTitle := "mywin" Gui, New, +LastFound, %WinTitle% Gui, Color, 0x000000 WinSet, Transparent, 150 w := A_ScreenWidth/4 h := A_ScreenHeight/4 Gui, Show, x100 y100 w%w% h%h%
内容的提问来源于stack exchange,提问作者Himanshu P
相关产品推荐
相关产品推荐

