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 的透明支持更高级,还能用 AllowsTransparencyWindowStyle 做出全自定义窗体。

不过注意性能,是旧机器上,窗口透明多了会卡。另外,有些透明窗口会让鼠标事件穿透,记得加逻辑判断。

如果你对 VB 透明窗口感兴趣,可以看看这些:

如果你用 VB 做桌面工具类应用,想让界面更有质感,试试半透明窗口,会有点惊喜。

rar
.rar 预估大小:5个文件
folder
半透明窗口 文件夹
file
_desktop.ini 8B
file
Project1.vbp 642B
file
Form1.frm 2KB
file
Project1.vbw 50B
file
MSSCCPRJ.SCC 193B
rar 文件大小:1.67KB