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

用VB實現“百葉窗”的圖形特效

編輯:VB綜合教程
在Powerpoint這樣的軟件中,各種各樣的圖形特效層出不窮,其中“百葉窗”的切換效果尤為新穎奇特。在VB中實現這樣的圖形特效十分簡單方便。其方法是調用WINDOWS的API函數Bitblt。BitBlt函數就類似於C語言中的getimage、putimage兩個函數的組合運用。BitBlt原意是“BitBlockTransfer”,其主要用途是位圖的復制。用BitBlt函數顯示圖形特效,其原理十分簡單,制作時先在表單中繪制兩個圖片框,將圖片存入一個圖片框,同時將另一個圖片框設為空,然後調用BitBlt函數將第一個圖片框中的圖形一部分一部分地復制到第二個圖片框中,這樣就可以實現千奇百怪的圖形特效。其步驟如下:
  在VB環境中新建一個窗體,繪制兩個圖片框picSour和picDest,兩個命令按鈕cmdShow和cmdExit。首先在窗體的通用過程中聲明BitBlt函數即所需要的常量名,在載入窗體同時在picSour中載入圖片,在按鈕cmdShow的事件中調用BitBlt函數。程序如下:
  API函數聲明:
  DeclareFunctionBitBltLib″GDI″(ByValhDestDCAsInteger,ByValXAsInteger,ByValYAsInteger,ByValnWidthASInteger,ByValnHeightAsInteger,ByValhSrcDCAsInteger,ByValxSrcAsInteger,ByValySrcAsInteger,ByValdwRopAsLong)AsInteger
  ConstCOPY-PUT=&HCC0020′BitBlt的15種算法之一,表示直接拷貝
  載入圖片:
  SubForm-Load()
  picsour.Picture=LoadPicture(″c:windowsLEAVES.bmp″)
  picsour.ScaleMode=3′以象素為單位
  EndSub
  顯示“百葉窗”的切換效果:
  SubComshow-Click()
  H%=picsour.ScaleHeight
  W%=picsour.ScaleWidth
  scanlines=4
  ForI=0To(scanlines-1)
  Forj=IToH%Stepscanlines
  s%=BitBlt%(picdest.hDC,0,j,W%,1,picsour.hDC,0,j,copy-Put)
  delay500′延時
  Nextj
  NextI
  EndSub
  其中delay是一個通用子過程,用於延時,以便於能看清楚切換效果。代碼如下:
  Subdelay(delaytimeAsInteger)
  ForI=1Todelaytime
  NextI
  EndSub
  通過這樣簡單的程序就可以實現“百葉窗”的切換特效,其實,只要有合適的算法,運用BitBlt函數能夠實現的圖形特效是無窮的。有興趣的讀者可以查閱有關VB的參考書。->

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