這是一個很奇特的功能,首先要讓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:ubbles.gif")注釋:請自行找一個背景透明的圖
hBitmap=CreateCompatibleBitmap(Me.hdc,0,0)
SelectObjectMe.hdc,hBitmap
Me.Refresh
EndSub
PrivateSubForm_Unload(CancelAsInteger)
DeleteObjecthBitmap
EndSub->