VB窗体透明,圆角处理..
作者:admin 日期:2010-09-03
程序代码
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
在窗体中这样调用:
程序代码
Private Sub Form_Load() '窗体透明,控件不透明
Me.BackColor = &H0
SetWindowLong Me.hwnd, GWL_EXSTYLE, WS_EX_LAYERED
SetLayeredWindowAttributes Me.hwnd, &H0, 255, LWA_ALPHA or LWA_COLORKEY '这里的255是透明度,0-255之间
End Sub
这里设置成255,就是不透明,我们可以看到,但是窗体的背景被去掉了,
...这样就控件可以看到,窗体看不到了.
程序代码
Private Sub Form_Load() '全部透明
Me.BackColor = &H0
SetWindowLong Me.hwnd, GWL_EXSTYLE, WS_EX_LAYERED
SetLayeredWindowAttributes Me.hwnd, &H0, 0, LWA_ALPHA or LWA_COLORKEY '这里的0是透明度,0-255之间
End Sub
这里就是设置成了0,就是什么都看不到了
圆角处理:
1.先使用
Private Sub Form_Load()
Me.BackColor = &H0
SetWindowLong Me.hwnd, GWL_EXSTYLE, WS_EX_LAYERED
SetLayeredWindowAttributes Me.hwnd, &H0, 255, LWA_ALPHA or LWA_COLORKEY '这里的255是透明度,0-255之间
End Sub
也就是说屏蔽黑色,窗体里出现的所有黑色(包括label控件,图片中的黑色部分)都会被屏蔽,变成透明!
2.加载图片
加载窗体的图片,直接将图片中窗体角落部分弄成黑色(必须是纯黑),再运行!有什么效果?
广告位