VB半透明窗口实现
VB 的半透明窗口效果,算是老项目里提升界面颜值的一个小妙招。你可以让窗口像磨砂玻璃那样透点底,既有层次感又不影响操作,适合做提示框、工具栏那类浮动窗口。
VB.NET 里实现这个其实不算复杂,主要靠一个叫 SetLayeredWindowAttributes
的 API 搞定透明度。透明度值是 0 到 255,0 最透明,255 完全不透明,调个中间值就能出磨砂效果。
VB6 就麻烦点,要用 API 配合设置窗口样式。关键是你得先让窗口支持分层(Layered)属性,才能改透明度。代码不长,用熟了挺方便。
比如下面这段:
Private Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As IntPtr, ByVal crKey As Integer, ByVal bAlpha As Byte, ByVal dwFlags As Integer) As Boolean
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim hWnd As IntPtr = Me.Handle
SetLayeredWindowAttributes(hWnd, 0, 127, 2)
End Sub
效果还不错,127 的透明度刚好,背景能透一点但不至于看不清窗口内容。
你要是想搞点花活,比如渐变、圆角、阴影啥的,就得动用 GDI+ 或者干脆用 WPF 了。WPF 的透明支持更高级,还能用 AllowsTransparency
和 WindowStyle
做出全自定义窗体。
不过注意性能,是旧机器上,窗口透明多了会卡。另外,有些透明窗口会让鼠标事件穿透,记得加逻辑判断。
如果你对 VB 透明窗口感兴趣,可以看看这些:
如果你用 VB 做桌面工具类应用,想让界面更有质感,试试半透明窗口,会有点惊喜。
.rar
预估大小:5个文件
半透明窗口
文件夹
_desktop.ini
8B
Project1.vbp
642B
Form1.frm
2KB
Project1.vbw
50B
MSSCCPRJ.SCC
193B
1.67KB
文件大小:
评论区