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