这是一个很奇特的功能,首先要让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->