枫飞秋语 发表于 2015-8-4 12:01:19

求助GUI背景透明

想设计一个窗口.背景透明,按钮,文字等都不透明....但是鼠标点击透明的地方仍然是点着的是这个窗口.而不是透明的就透掉了.镂空了.直接点到下面的东西了....#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <WINAPI.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 300, 300, 300, 300,$WS_POPUP, BitOR($WS_EX_LAYERED,$WS_EX_TOPMOST))
GUISetBkColor(0xABCDEF)
_WinAPI_SetLayeredWindowAttributes($Form1, 0xABCDEF)
$Button1 = GUICtrlCreateButton("Button1", 24, 16, 105, 33)
$Label1 = GUICtrlCreateLabel("Label1", 160, 200, 132, 33)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit
                Case $Button1       
        EndSwitch
WEnd

枫飞秋语 发表于 2015-8-4 12:05:05

本帖最后由 枫飞秋语 于 2015-8-4 12:06 编辑

胡乱试了下_WinAPI_SetLayeredWindowAttributes($Form1, 0xABCDEF,1) (255---1)相当于透明的也点不到下面的东西.但是按钮,文字也透了看不见了!

ap112 发表于 2015-8-4 15:03:49





看看对你有帮助吗?

枫飞秋语 发表于 2015-8-4 15:34:52

回复 3# ap112

谢谢.不过这个效果不是我想要的...
这么解释吧.比如我想移动这个窗口.必需鼠标点击龙字的笔画上,点他笔画间的透明处,就等于点到下面那个窗口去了.....我想要的就是点着笔画间的透明处也还属于点龙字本身存在的窗口

ap112 发表于 2015-8-4 15:51:30

回复ap112

谢谢.不过这个效果不是我想要的...
这么解释吧.比如我想移动这个窗口.必需鼠标点击龙字的 ...
枫飞秋语 发表于 2015-8-4 15:34 http://www.autoitx.com/images/common/back.gif


    你到底想要啥呀,能表达清楚不?看看你的描述,不清不楚。

ap112 发表于 2015-8-4 15:52:50

回复ap112

谢谢.不过这个效果不是我想要的...
这么解释吧.比如我想移动这个窗口.必需鼠标点击龙字的 ...
枫飞秋语 发表于 2015-8-4 15:34 http://www.autoitx.com/images/common/back.gif


    你到底想要啥呀,能表达清楚不?看看你的描述,不清不楚。




这个呢?

枫飞秋语 发表于 2015-8-4 16:41:34

回复 6# ap112


这个是WIN7的么?等会我找WIN7的电脑试试....

我想表达的是 鼠标点击透明的位置不穿透.... 不知道是不是这样表达

枫飞秋语 发表于 2015-8-4 18:41:02

回复 6# ap112

啊,我要疯了..怎么解释呢...窗口全屏,无边框.背景透明.只有一个按钮显示出来.但是点任何透明的地方鼠标不会穿透从而点到下面的窗口去(点到桌面的东西).....

我瞎做了一个,先一个窗口透明度1 (如果透明度为0,就会穿透了),然后一个只做了按钮的无边窗口,循环置顶,要不然点了全屏窗口.就点不到按钮了,但是这样的话按钮弹出的东西又被他置顶害得点不到了..您看下我乱写的吧,,就是要这样的效果..点不了桌面的东西只能点按钮~!#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <WINAPI.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1",530, 530, 0, 0,$WS_POPUP, BitOR($WS_EX_LAYERED,$WS_EX_TOPMOST))
WinSetTrans("Form1", "",1)
GUISetState(@SW_SHOW)
GUISetState(@SW_MAXIMIZE)
$Form2 = GUICreate("Form2", 180, 80, 192, 124,$WS_POPUP)
$Button1 = GUICtrlCreateButton("Button1",0, 0, 180, 80, BitOR($BS_DEFPUSHBUTTON,$BS_MULTILINE))
GUICtrlSetFont(-1, 16, 400, 0, "楷体_GB2312")
GUISetState(@SW_SHOW)

#EndRegion ### END Koda GUI section ###

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit

                Case $Button1
                        cha()
        EndSwitch
        WinSetOnTop ("Form2","",1)
WEnd
Func cha()
MsgBox(1,"22222","2222",5)
        EndFunc

枫飞秋语 发表于 2015-8-4 18:42:08

回复 6# ap112


   嗯,就是要这样的透明效果..鼠标点透明的地方点不到桌面的东西...
可是我不会改按钮,,,而且有边框..

cutyourchicken 发表于 2015-8-4 20:32:48

正在学做透明窗~

luren666 发表于 2015-8-5 11:45:56

我测试你的第一脚本,完合符合你自己的要求的呀,你说的按钮也透明看不见的情况我这里没有,按钮还是正常的按钮,就是LABEL透明了,看不太清楚了,你使用GUICtrlSetBkColor给控件设置一个背景颜色不就好了吗?

枫飞秋语 发表于 2015-8-5 12:24:51

回复 11# luren666

第一个脚本是透明按钮显示,,但是鼠标在透明位置点击就穿透了,点到桌面的东西了。。。我想要的是鼠标掉透明的地方不穿透不能点到桌面的东西。
麻烦您帮看下这些的脚本。。。鼠标点击不穿透了但是按钮也跟着透明了#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <WINAPI.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 300, 300, 300, 300,$WS_POPUP, BitOR($WS_EX_LAYERED,$WS_EX_TOPMOST))
;GUISetBkColor(0xABCDEF)
_WinAPI_SetLayeredWindowAttributes($Form1, 0xABCDEF,100) ;数值改成1,相当于透明但不会穿透点到桌面的东西,求如何不穿透,按钮也不被透明!
$Button1 = GUICtrlCreateButton("Button1", 24, 16, 105, 33)
$Label1 = GUICtrlCreateLabel("Label1", 160, 200, 132, 33)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
      $nMsg = GUIGetMsg()
      Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit
                Case $Button1      
      EndSwitch
WEnd

枫飞秋语 发表于 2015-8-5 12:29:37

本帖最后由 枫飞秋语 于 2015-8-5 13:54 编辑

回复 12# 枫飞秋语


    好吧。。。这样说,窗口背景透明度100(半透明),按钮不透明

枫飞秋语 发表于 2015-8-5 12:29:55

本帖最后由 枫飞秋语 于 2015-8-5 13:55 编辑

回复 6# ap112


      好吧。。。这样说,窗口背景透明度100(半透明),按钮不透明

luren666 发表于 2015-8-7 00:06:36

好像和系统有关系,经过我的测试,你的第一个脚本在I3的台式机,盗版WIN7旗舰版SP1上面运行,完全符合您自己的要求,按钮正常显示,窗口透明部分不会穿透,但是在我的ACER E5-572G-528R笔记本的正版WIN 8.1家庭版上面,按钮正常显示,但窗口透明部分点鼠标会穿透。
页: [1] 2
查看完整版本: 求助GUI背景透明