具体代码如下:
首先创建一个FORM,在FORM上放一个Button,放一个Frame
然后输入代码:
Private Declare Function GetWindowLong Lib "user32 " Alias "GetWindowLongA" (ByValhwnd As Long, ByValnIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32 " Alias "SetWindowLongA" (ByValhwnd As Long, ByValnIndex As Long, ByValdwNewLong As Long) As Long
Private Declare Function SetLayeredWindowAttributes Lib "user32.dll" (ByValhwnd As Long, ByValcrKey As Long, ByValbAlpha As Byte, ByValdwFlags As Long) As Long
Private Const GWL_EXSTYLE As Long = (-20)
Private Const WS_EX_LAYERED As Long = &H80000
Private Const LWA_COLORKEY As Long = &H1
Private Sub Command1_Click()
Dim rtn As Long
LeftFrame.BackColor = &HFF0000
rtn = GetWindowLong(hwnd, GWL_EXSTYLE)
rtn = rtn Or WS_EX_LAYERED
SetWindowLonghwnd, GWL_EXSTYLE, rtn
SetLayeredWindowAttributeshwnd, &HFF0000, 0, LWA_COLORKEY '将扣去窗口中的蓝色End Sub
最后执行点击Button,那么Frame就透明了。
'制作透明Frame
Private Declare Function GetWindowLong Lib "user32 " Alias "GetWindowLongA" (ByValhwnd As Long, ByValnIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32 " Alias "SetWindowLongA" (ByValhwnd As Long, ByValnIndex As Long, ByValdwNewLong As Long) As Long
Private Declare Function SetLayeredWindowAttributes Lib "user32.dll" (ByValhwnd As Long, ByValcrKey As Long, ByValbAlpha As Byte, ByValdwFlags As Long) As Long
Private Const GWL_EXSTYLE As Long = (-20)
Private Const WS_EX_LAYERED As Long = &H80000
Private Const LWA_COLORKEY As Long = &H1
'制作透明Frame(放在监控控件中执行)
Dim rtn As Long
LeftFrame.BackColor = &HFF0000
rtn = GetWindowLong(hwnd, GWL_EXSTYLE)
rtn = rtn Or WS_EX_LAYERED
SetWindowLonghwnd, GWL_EXSTYLE, rtn
SetLayeredWindowAttributeshwnd, &HFF0000, 0, LWA_COLORKEY '将扣去窗口中的蓝色