vb怎么样实现界面透明阿?

baiyunyi 2006-01-02 07:43:51
在VB中,怎么样实现Form界面的透明阿,我在网上找了一个代码,但是他连表单上的所有控件全部透明了。


请教各位大虾如何和实现界面的透明!!!!!!
...全文
471 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
baiyunyi 2006-03-23
  • 打赏
  • 举报
回复
技术讨论结束。
IamDeane 2006-03-17
  • 打赏
  • 举报
回复
汗啊,好强的抢分一族,呵呵
baiyunyi 2006-03-16
  • 打赏
  • 举报
回复
可以啊,这样的同样OK
Private Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long
Const WS_EX_LAYERED = &H80000
Const GWL_EXSTYLE = (-20)
Const LWA_ALPHA = &H3
Const LWA_COLORKEY = &H1
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 Sub Form_Load()
SetWindowLong Me.hwnd, GWL_EXSTYLE, WS_EX_LAYERED
SetLayeredWindowAttributes Me.hwnd, 0, 255, LWA_ALPHA
End Sub


把form的背景设置成 黑色, 你看看,很好的

是这样



oner007(小海) 你的程序代码是什么?
Arqui 2006-03-16
  • 打赏
  • 举报
回复
学习中,找了好久
rayxu 2006-03-15
  • 打赏
  • 举报
回复
Option Explicit

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 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, FormStyle
' 设置窗体为半透明
SetLayeredWindowAttributes Me.hwnd, 0, 152, LWA_ALPHA
End Sub

这个也绝对OK
baiyunyi 2006-03-15
  • 打赏
  • 举报
回复
感谢各位,在次叩首!!
cxianfa 2006-03-15
  • 打赏
  • 举报
回复
搂住,最后是怎么做的啊?可以发出来吗
fsb_12345 2006-03-14
  • 打赏
  • 举报
回复
来晚了
Jekhn 2006-03-14
  • 打赏
  • 举报
回复
学习!
oner007 2006-03-14
  • 打赏
  • 举报
回复
是不是解决了!我的程序有现有的代码!?
kmlxk0 2006-03-14
  • 打赏
  • 举报
回复
学习~~~
baiyunyi 2006-03-13
  • 打赏
  • 举报
回复
Private Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long
Const WS_EX_LAYERED = &H80000
Const GWL_EXSTYLE = (-20)
Const LWA_ALPHA = &H3
Const LWA_COLORKEY = &H1
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 Sub Form_Load()
SetWindowLong Me.hwnd, GWL_EXSTYLE, WS_EX_LAYERED
SetLayeredWindowAttributes Me.hwnd, 0, 255, LWA_ALPHA
End Sub


把form的背景设置成 黑色, 你看看,很好的

是这样
baiyunyi 2006-03-12
  • 打赏
  • 举报
回复
51365133(渊海) 谢谢!!
baiyunyi 2006-03-12
  • 打赏
  • 举报
回复
51365133(渊海) 谢谢 你我也 盖了一下,很好的

Private Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long
Const WS_EX_LAYERED = &H80000
Const GWL_EXSTYLE = (-20)
Const LWA_ALPHA = &H2
Const LWA_COLORKEY = &H1
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 Sub Form_Load()
SetWindowLong Me.hwnd, GWL_EXSTYLE, WS_EX_LAYERED
SetLayeredWindowAttributes Me.hwnd, 0, 255, LWA_ALPHA
End Sub

把form的背景设置成 黑色, 你看看,很好的
51365133 2006-03-10
  • 打赏
  • 举报
回复
我改了下,你建一个工程,什么代码都不要加,把上边的复制进去,就OK了
51365133 2006-03-10
  • 打赏
  • 举报
回复
Private Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long
Const WS_EX_LAYERED = &H80000
Const GWL_EXSTYLE = (-20)
Const LWA_ALPHA = &H2
Const LWA_COLORKEY = &H1
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 Sub Form_Load()
Dim rtn As Long
rtn = GetWindowLong(Me.hwnd, GWL_EXSTYLE)
rtn = rtn Or WS_EX_LAYERED
SetWindowLong Me.hwnd, GWL_EXSTYLE, rtn
SetLayeredWindowAttributes Me.hwnd, 0, 100, LWA_ALPHA
' 可以根据需要调整透明度,我这里用的是100
End Sub

51365133 2006-03-10
  • 打赏
  • 举报
回复
Private Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long
Const WS_EX_LAYERED = &H80000
Const GWL_EXSTYLE = (-20)
Const LWA_ALPHA = &H2
Const LWA_COLORKEY = &H1
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 Sub Form_Load()
Dim rtn As Long
rtn = GetWindowLong(Me.hwnd, GWL_EXSTYLE)
rtn = rtn Or WS_EX_LAYERED
SetWindowLong Me.hwnd, GWL_EXSTYLE, rtn
SetLayeredWindowAttributes Me.hwnd, 0, 100, LWA_ALPHA
' 可以根据需要调整透明度,我这里用的是100
End Sub

//建立一个工程文件,把上边的代码复制进去,其它的不要,我测试了可以的
baiyunyi 2006-03-10
  • 打赏
  • 举报
回复
51365133(渊海) 建立了。
51365133 2006-03-10
  • 打赏
  • 举报
回复
后边的 Module1 里边的内容你建了吗?>
baiyunyi 2006-03-09
  • 打赏
  • 举报
回复
51365133(渊海) 我试了一下,它报错“无法找到GetWindowLong DLL 入口”,请问怎么回事?



WallesCai(曾经沧海难为水,除却巫山不是云。此情可待成追忆,只是) 谢谢!!我去试一下。
加载更多回复(10)

1,486

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧