用SetLayeredWindowAttributes函数:Option Explicit 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 Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long Private Const WS_EX_LAYERED = &H80000 Private Const GWL_EXSTYLE = (-20) Private Const LWA_ALPHA = &H2 Private Const LWA_COLORKEY = &H1 Private Const WS_DLGFRAME = &H400000Private Sub Command1_Click() Dim rtn As Long Dim transCol As Long, myHwnd As Long transCol = vbWhite rtn = GetWindowLong(hwnd, GWL_EXSTYLE) rtn = rtn Or WS_EX_LAYERED myHwnd = Me.hwnd SetWindowLong myHwnd, GWL_EXSTYLE, rtn SetLayeredWindowAttributes myHwnd, transCol, 200, LWA_ALPHA End SubPrivate Sub Form_Load() Me.BackColor = vbWhite End Sub
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 Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long
Private Const WS_EX_LAYERED = &H80000
Private Const GWL_EXSTYLE = (-20)
Private Const LWA_ALPHA = &H2
Private Const LWA_COLORKEY = &H1
Private Const WS_DLGFRAME = &H400000Private Sub Command1_Click()
Dim rtn As Long
Dim transCol As Long, myHwnd As Long
transCol = vbWhite
rtn = GetWindowLong(hwnd, GWL_EXSTYLE)
rtn = rtn Or WS_EX_LAYERED
myHwnd = Me.hwnd
SetWindowLong myHwnd, GWL_EXSTYLE, rtn
SetLayeredWindowAttributes myHwnd, transCol, 200, LWA_ALPHA
End SubPrivate Sub Form_Load()
Me.BackColor = vbWhite
End Sub