用VB實(shí)現(xiàn)“百葉窗”的圖形特效
在Powerpoint這樣的軟件中,各種各樣的圖形特效層出不窮,其中“百葉窗”的切換效果尤為新穎奇特。在VB中實(shí)現(xiàn)這樣的圖形特效十分簡單方便。其方法是調(diào)用WINDOWS的API函數(shù)Bitblt。BitBlt函數(shù)就類似于C語言中的getimage、putimage兩個函數(shù)的組合運(yùn)用。BitBlt原意是“Bit Block Transfer”,其主要用途是位圖的復(fù)制。用BitBlt函數(shù)顯示圖形特效,其原理十分簡單,制作時先在表單中繪制兩個圖片框,將圖片存入一個圖片框,同時將另一個圖片框設(shè)為空,然后調(diào)用BitBlt函數(shù)將第一個圖片框中的圖形一部分一部分地復(fù)制到第二個圖片框中,這樣就可以實(shí)現(xiàn)千奇百怪的圖形特效。其步驟如下:
在VB環(huán)境中新建一個窗體,繪制兩個圖片框picSour和picDest,兩個命令按鈕cmdShow和cmdExit。首先在窗體的通用過程中聲明BitBlt函數(shù)即所需要的常量名,在載入窗體同時在picSour中載入圖片,在按鈕cmdShow的事件中調(diào)用BitBlt函數(shù)。程序如下:
API函數(shù)聲明:
Declare Function BitBlt Lib″GDI″(ByVal hDestDC As Integer,ByVal X As Integer,ByVal Y As Integer,ByVal nWidth AS Integer,ByVal nHeight As Integer,ByVal hSrcDC As Integer,ByVal xSrc As Integer,ByVal ySrc As Integer,ByVal dwRop As Long)As Integer
Const COPY-PUT=&HCC0020′BitBlt的15種算法之一,表示直接拷貝
載入圖片:
Sub Form-Load()
picsour.Picture=LoadPicture(″c:\windows\LEAVES.bmp″)
picsour.ScaleMode=3′以象素為單位
End Sub
顯示“百葉窗”的切換效果:
Sub Comshow-Click()
H%=picsour.ScaleHeight
W%=picsour.ScaleWidth
scanlines=4
For i=0 To(scanlines-1)
For j=i To H% Step scanlines
s%=BitBlt%(picdest.hDC,0,j,W%,1,picsour.hDC,0,j,copy-Put)
delay 500′延時
Next j
Next i
End Sub
其中delay是一個通用子過程,用于延時,以便于能看清楚切換效果。代碼如下:
Sub delay(delaytime As Integer)
For i=1 To delaytime
Next i
End Sub
通過這樣簡單的程序就可以實(shí)現(xiàn)“百葉窗”的切換特效,其實(shí),只要有合適的算法,運(yùn)用BitBlt函數(shù)能夠?qū)崿F(xiàn)的圖形特效是無窮的。有興趣的讀者可以查閱有關(guān)VB的參考書。
相關(guān)推薦:2011計算機(jī)等級考試二級VB考點(diǎn)及習(xí)題匯總
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |