VB6.0使窗口透明化

2025-10-28 15:54:16

1、打开VB6.0,创建工程

VB6.0使窗口透明化

2、进入编写代码窗口,在如图位置添加下面的API函数代码

'窗口透明API

Private Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long

Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long

Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

'窗口透明常数

'Const WS_EX_LAYERED = &H80000

Const GWL_EXSTYLE = (-20)

Const LWA_ALPHA = &H2 

Const LWA_COLORKEY = &H1 

VB6.0使窗口透明化

3、在窗口的加载事件里添加如下代码

'''''''''''''''''''''窗体透明'''''''''''''''

Dim rtn As Long

Me.BackColor = RGB(0, 0, 0)'设置一下窗口的颜色

rtn = GetWindowLong(hwnd, GWL_EXSTYLE)

rtn = rtn Or WS_EX_LAYERED

SetWindowLong hwnd, GWL_EXSTYLE, rtn

SetLayeredWindowAttributes hwnd, RGB(0, 0, 0), 150, LWA_ALPHA

'RGB(0, 0, 0)参数就是要透明掉的颜色

VB6.0使窗口透明化

4、OK,点击运行,窗口的透明化就实现了

VB6.0使窗口透明化

5、下面介绍一下这个API函数的其它透明效果,参数的说明。

Const LWA_ALPHA = &H2       '使用此参数,透明度有效,透明颜色无效

Const LWA_COLORKEY = &H1 '使用此参数,透明度无效,透明颜色有效

VB6.0使窗口透明化

6、在调用函数的语句中。如果使用 LWA_ALPHA 参数,即

SetLayeredWindowAttributes hwnd, RGB(0, 0, 0), 150, LWA_ALPHA

则窗口中的控件也会透明,透明颜色会失效

VB6.0使窗口透明化

7、在调用函数的语句中。如果使用 LWA_COLORKEY 参数,即

SetLayeredWindowAttributes hwnd, RGB(0, 0, 0), 150, LWA_COLORKEY

则窗口中的控件不会透明,透明颜色会有效

VB6.0使窗口透明化

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢