首页 > 学院 > 开发设计 > 正文

透明的窗体(From)上显示背景透通图

2019-11-18 17:33:53
字体:
来源:转载
供稿:网友
这是一个很奇特的功能,首先要让Form变透明,接着,放一张背景透明的.gif图进来,如此,这变成一个透明的form,上面有许多Button,且图不会是一个方形,而会让图的背景透通。但有一点要注意,这种透明的Form不可以移动,否则一移就会发现它似乎不是透明的,这个很不好解释,建议您一开始设定Form的BorderStyle=2大小可变可移动,而去移动与更动小大,便可以知道。因此,在设计阶段时,一定要设BorderStyle=0没有框线,这样子您的Form才不会有问题。
首先我使用以下的程式码令Form变透明

注:有适当的软体(如MSPhotEditor)可以将图变成背景透通(引用老怪之言)

Me.AutoRedraw=True
hBitmap=CreateCompatibleBitmap(Me.hdc,0,0)
SelectObjectMe.hdc,hBitmap
Me.Refresh
而透明的图形呢,那需要那一种背景透通性的.GIF档,在Form上放一个ImageControl,将
图放到ImageControl,那就OK了注释:需一个ImageControl,一个Command1
OptionExplicit
PRivateDeclareFunctionSelectObjectLib"gdi32"(ByValhdcAsLong,ByValhObjectAsLong)AsLong
PrivateDeclareFunctionDeleteObjectLib"gdi32"(ByValhObjectAsLong)AsLong
PrivateDeclareFunctionCreateCompatibleBitmapLib"gdi32"(ByValhdcAsLong,ByValnWidthAsLong,ByValnHeightAsLong)AsLong
PrivatehBitmapAsLong

PrivateSubCommand1_Click()
UnloadMe
EndSub

PrivateSubForm_Load()
注释:事先请设form的BorderStyle=0没有框线
Me.AutoRedraw=True
SetImage1.Picture=LoadPicture("e:/bubbles.gif")注释:请自行找一个背景透明的图
hBitmap=CreateCompatibleBitmap(Me.hdc,0,0)
SelectObjectMe.hdc,hBitmap
Me.Refresh
EndSub

PrivateSubForm_Unload(CancelAsInteger)
DeleteObjecthBitmap
EndSub->


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表