>>>>>>>>>透明窗体的问题 新函数 SetLayeredWindowAttributes<<<<<<<<
Private Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long
SetLayeredWindowAttributes这个函数是 这么定义的,但是提醒没有包含这个 函数的DLL文件 怎么班?
问题点数:80、回复次数:9Top
1 楼wqb(啊喂)回复于 2002-01-05 14:31:25 得分 10
这个函数似乎只是在2000千下有,你是win2000吗?
参见 http://bbs.tencent.com/community/dnwl/10048/33382.shtmlTop
2 楼piaoyang80(飘洋)回复于 2002-01-05 15:02:55 得分 0
能不能在98 下用呀?Top
3 楼Jneu(沧海桑田)回复于 2002-01-05 15:13:14 得分 0
当然不能~Top
4 楼withstudy(我们一直在努力,爱多VCD)回复于 2002-01-05 18:31:12 得分 10
用它还不如用透明窗体的控件那Top
5 楼piaoyang80(飘洋)回复于 2002-01-09 13:56:09 得分 0
withstudy(王永丰)
哪里有这个控件 Top
6 楼Random(随便)回复于 2002-01-09 14:23:34 得分 10
建议用.net做,设设窗口属性即可,太方便了。Top
7 楼TechnoFantasy((VB MVP)www.applevb.com)回复于 2002-01-09 16:10:43 得分 30
' zun鋍hst die ben鰐igten API-Deklarationen
Private Declare Function SetLayeredWindowAttributes Lib _
"user32" (ByVal hWnd As Long, ByVal crKey As Long, _
ByVal bAlpha As Byte, ByVal dwFlags As Long) As Boolean
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 GetWindowLong Lib "user32" _
Alias "GetWindowLongA" (ByVal hWnd As Long, _
ByVal nIndex As Long) As Long
Private Const GWL_EXSTYLE = -20
Private Const WS_EX_LAYERED = &H80000
Private Const LWA_COLORKEY = &H1
Private Const LWA_ALPHA = &H2
Public Sub lwa_FadeIn(ByVal hWnd As Long, Optional ByVal iStep As Integer = 1)
' FadeIn
Dim bAlpha As Integer
bAlpha = 0
While bAlpha < 255
If bAlpha > 255 Then bAlpha = 255
SetLayeredWindowAttributes hWnd, 0, bAlpha, _
LWA_ALPHA
DoEvents
bAlpha = bAlpha + iStep
Wend
End Sub
Public Sub lwa_FadeOut(ByVal hWnd As Long, Optional ByVal iStep As Integer = 1)
' FadeOut
Dim bAlpha As Integer
bAlpha = 255
While bAlpha > 0
If bAlpha < 0 Then bAlpha = 0
SetLayeredWindowAttributes hWnd, 0, bAlpha, _
LWA_ALPHA
DoEvents
bAlpha = bAlpha - iStep
Wend
End Sub
Private Sub Form_Load()
' Fenster-Attribute setzen
Call SetWindowLong(Me.hWnd, GWL_EXSTYLE, _
GetWindowLong(Me.hWnd, GWL_EXSTYLE) Or WS_EX_LAYERED)
Me.Show
DoEvents
lwa_FadeIn Me.hWnd, 5
End Sub
Private Sub Form_Unload(Cancel As Integer)
' FadeOut und beenden
lwa_FadeOut Me.hWnd, 5
Unload Me
End
End Sub
不过这个函数只在Win2K下有效
Top
8 楼NowCan(城市浪人)回复于 2002-01-09 18:52:11 得分 10
98下没这个函数,只能模拟半透明。
http://nowcan.yeah.net
Top
9 楼ehappyhare(软件兔)回复于 2002-01-09 19:06:18 得分 10
确实是“新”函数,因为只有2000中能用。
在2000中声明后即可使用,其它不行!Top




