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
Private Const WS_EX_LAYERED = &H80000
Private Const GWL_EXSTYLE = (-20)
Private Const LWA_ALPHA = &H2
Private Sub Command1_Click()
'关闭
Timer1.Interval = 50
End Sub
Private Sub Form_Load()
Dim FormStyle As Long
'取的窗口原先的样式
FormStyle = GetWindowLong(Me.hwnd, GWL_EXSTYLE)
'使窗体添加上新的样式WS_EX_LAYERED
FormStyle = FormStyle Or WS_EX_LAYERED
'把新的样式赋给窗体
SetWindowLong Me.hwnd, GWL_EXSTYLE, GetWindowLong(Me.hwnd, GWL_EXSTYLE) Or WS_EX_LAYERED
'直接设置一个值(0-255之间)替换数值255来改变透明度,这里用180
SetLayeredWindowAttributes Me.hwnd, 0, 18, LWA_ALPHA
End Sub