求助,窗体透明,老师进来看看~~~
vb吧
全部回复
仅看楼主
level 13
gujlg 楼主
实现窗体透明,代码如下,可以实现,但当我移动窗体后,就不能在透明了。Option ExplicitPrivate Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As LongPrivate Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As LongPrivate Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hWnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As LongPrivate Const WS_EX_LAYERED = &H80000Private Const GWL_EXSTYLE = (-20)Private Const LWA_ALPHA = &H2Private Const LWA_COLORKEY = &H1Private Sub Form_Load()Me.BackColor = RGB(66, 66, 66)rtn = GetWindowLong(hWnd, GWL_EXSTYLE)rtn = rtn Or WS_EX_LAYEREDSetWindowLong Me.hWnd, GWL_EXSTYLE, rtnSetLayeredWindowAttributes Me.hWnd, RGB(66, 66, 66), i, LWA_COLORKEYEnd Sub
2007年03月18日 11点03分 1
level 0
http://post.baidu.com/f?ct=335675392&tn=baiduPostBrowser&sc=1655507357&z=178563700&pn=0&rn=50&lm=0&word=vb#1655507357
2007年03月18日 11点03分 2
level 13
gujlg 楼主
...........
2007年03月18日 11点03分 3
level 13
1.你加了Option Explicit 这是好习惯但你的 rtn 与 i 两个变量并没有宣告.2.你看看这行SetLayeredWindowAttributes Me.hWnd, RGB(66, 66, 66), i, LWA_COLORKEY 这是我的代码, 但我不知道你是从我的那个代码截取的片段, 你看看 这行的 i 变量,在你代码中并没有, 它会自动变成 i=0, 你没定义i变量的话当然就会出错.
2007年03月18日 11点03分 4
level 13
gujlg 楼主
老师,你的代码我运行了,效果一样啊,还是拖动之后不能在透明了。
2007年03月18日 11点03分 6
level 13
呵呵你用的是啥系统 ? 98 2000 XP 我都试过了.如果你用的是精简版, 你就别再问了, 我可没试过,打死我也不会用它.
2007年03月19日 04点03分 7
level 2
老师那个透明度,可不可以不是完全透明的呀
2007年03月23日 08点03分 8
level 2
谢谢老师
2007年03月23日 09点03分 10
level 13
gujlg 楼主
老师,为什么我拖动窗口,然后放开鼠标后就不在透明了啊?XP系统,VB6.0企业版。
2007年03月24日 04点03分 11
level 13
呵呵, 我确实无语....透明有很多种不同的方式, 你真不能用上面的代码,有空我再弄一个给你.
2007年03月24日 05点03分 12
level 13
gujlg 楼主
恩恩,好的,谢谢老师。
2007年03月24日 05点03分 13
level 13
gujlg 楼主
啊,老师,我把VB卸载了重新安装遍,居然好了。哎,让老师费心了。
2007年03月24日 07点03分 14
1