您的位置:首页 > 编程语言 > VB

VB 窗口透明度设置-WindowsAPI-SetLayeredWindowAttributes

2016-12-07 12:41 1221 查看

VB 窗口透明度设置-WindowsAPI-SetLayeredWindowAttributes

1效果图



2VB代码

模块代码

Option Explicit
Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long

Public Const WS_EX_LAYERED = &H80000
Public Const GWL_EXSTYLE = -20
Public Const LWA_ALPHA = &H2
Public Const LWA_COLORKEY = &H1

' bAlpha  0~255   0为完全透明,255为不透明

' 其中,dwFlags参数可取以下值:
' LWA_ALPHA时:crKey参数无效,bAlpha参数有效;
' LWA_COLORKEY:窗体中的所有颜色为crKey的地方将变为透明,bAlpha参数无效。其常量值为1。
' LWA_ALPHA | LWA_COLORKEY:crKey的地方将变为全透明,而其它地方根据bAlpha参数确定透明度。


窗体代码

Option Explicit

Private Sub Form_Load()

Dim rtn As Long
rtn = GetWindowLong(hwnd, GWL_EXSTYLE)
rtn = rtn Or WS_EX_LAYERED
SetWindowLong hwnd, GWL_EXSTYLE, rtn
SetLayeredWindowAttributes hwnd, 0, 100, LWA_ALPHA

End Sub


参考资料:

http://useway.blog.51cto.com/736087/294579/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息