程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> Visual Basic語言 >> VB綜合教程 >> 透明的窗體(From)上顯示背景透通圖

透明的窗體(From)上顯示背景透通圖

編輯:VB綜合教程
這是一個很奇特的功能,首先要讓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->

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved