程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> Visual Basic語言 >> VB綜合教程 >> 放置“透明”的圖片

放置“透明”的圖片

編輯:VB綜合教程
在VB中,如果你試著把一只有鳥的圖片放到背景的一棵樹上,你就會發現樹會被鳥遮住一個矩形的區域(即鳥的圖片矩形)。我們可以通過以下方法使圖片上非鳥的其它部分變透明:我們可以利用一個WinAPI函數BitBlt對圖形進行一系列的位操作來達到此目的。
  函數聲明:
  DeclareFunctionBitBltLib"gdi32"Alias"BitBlt"(ByValhDestDCAsLong,ByValxAsLong,ByValyAsLong,ByValnWidthAsLong,ByValnHeightAsLong,ByValhSrcDCAsLong,ByValxSrcAsLong,ByValySrcAsLong,ByValdwRopAsLong)AsLong
  參數解釋:
  目標環境:hDestDC——目標設備環境;x——左上角;y——頂端;nWidth——寬;nHeight——高源環境:hSrcDC——源設備環境;xSrc——源左上角;ySrc——源頂端;dwRop——位處理操作,如vbSrcAnd;vbSrcAnd;vbSrcCopy;vbSrcErase;vbSrcInvert等
  (目標環境或源環境只能是Picture,Form或Printer對象。各單位為象素。)
  進行處理之前,我們需要對鳥的圖片進行處理:先復制一份相同的圖形,將其應該透明之處(鳥的背景)設置為黑色(設此圖為sPic),再將另一圖做以下處理:要復制的地方(鳥)設置為黑色,其余地方設置(鳥的背景)為白色(設此圖為Mask)。設樹的圖形為名dPic。
  最後,請加入以下代碼:
  R=BitBlt(dPic.hdc,0,0,sPic.Width,sPic.Height,Mask.hdc,0,0,vbScrCopy)
  R=BitBlt(dPic.hdc,0,0,sPic.Width,sPic.Height,sPic.hdc,0,0,vbScrInvert)
  後記:
  1、VB中的PaintPicture方法提供類似功能,但速度不及此方法;
  2、在此方法上稍微加入一些代碼,就不難實現動畫的顯示。
  3、VB例子中的CallDlls就使用此方法。->

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