以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  XP系统下,背景透明效果没有实现  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=80802)

--  作者:13865161910
--  发布时间:2016/2/2 10:04:00
--  XP系统下,背景透明效果没有实现
如题,W7系统窗口透明效果正常,但在XP系统下,窗口的透明背景效果无法实现!!
--  作者:大红袍
--  发布时间:2016/2/2 10:05:00
--  
 你怎样做的窗口透明,贴出代码,上传实例。
--  作者:13865161910
--  发布时间:2016/2/2 11:53:00
--  回复:(大红袍) 你怎样做的窗口透明,贴出代码...
设置窗口的背景色Lavender,背景图片用*.png格式,窗口会略大于背景

然后afterload 设置如下:
e.Form.BaseForm().TransparencyKey = Color.Lavender
e.form.baseform.Opacity = 0.9 \'窗口透明度(0.1-??)

forms("用户登录").baseform.ShowInTaskBar = True
e.Form.BaseForm.FormBorderStyle = Windows.Forms.FormBorderStyle.None \'消除窗口的边框
myform = e.Form.BaseForm
Dim WS_SYSMENU As Integer = &H00080000
Dim Min As Integer = &H00020000
Dim windowLong As Integer = GetWindowLong(new HandleRef(e.Form.Baseform, e.Form.Baseform.Handle), -16)
SetWindowLong(new HandleRef(e.Form.Baseform, e.Form.Baseform.Handle), -16, windowLong Or WS_SYSMENU Or min)


在W7/8/10系统下 超出PNG区域的位置会显示成透明的,但在XP系统下,这个Lavender的颜色显示出来了,没有变透明!

--  作者:13865161910
--  发布时间:2016/2/2 11:56:00
--  
是否是XP系统风格设置问题?必须要使用默认的才能按效果显示?!
--  作者:大红袍
--  发布时间:2016/2/2 12:00:00
--  

换一种颜色卡看,比如 Color.Red

 

不行的话,做个具体例子测试。