為了美化顯示屏幕,增加畫面的動感,常常要用到各種圖像顯示特技,圖像的切換技術(shù)能明顯美化畫面。用VB編制這類程序時,由于VB自身沒有這種切換功能,因此需要控件的參與或調(diào)用API函數(shù)BitBlt來實現(xiàn)這種功能。這里向你展示用BitBlt函數(shù)實現(xiàn)畫面的各種足以令人興奮的效果。
假設(shè)有5個圖像文件——Picture1至Picture5,我們的目標(biāo)是:讓這5幅畫自動地循環(huán)顯示,每幅畫以某種切換方式出現(xiàn),當(dāng)有擊鼠標(biāo)動作時退出程序。
創(chuàng)建項目文件
建立一個新工程文件Project1,加入一個新的Form名稱為Form1;添加一個模塊文件Modull;在Form1中加入一個圖畫框Picture1和一個定時器Timer1。
設(shè)置屬性如下:
Form1:AutoRedraw:True
ScaleMode:3
Picture1:AutoRedraw:True
ScaleMode:3
Visible:False
編寫代碼
聲明BitBlt函數(shù)——Modull.bas中的內(nèi)容:
Public Const SRCCOPY=&HCC0020′(DWORD)dest=source
Declare Function BitBlt Lib ″gdi32″Alias ″BitBlt″(By Val hDestDC As Long ByVal x As Long ByVal y As Long ByVal nWidth As Long ByVal nHeight As Long ByVal hSrcDC As Long ByVal xSrc As Long ByVal ySrc As Long ByVal dwRop As Long ) As Long
這兩句只要從Win32api.txt文件中粘貼即可(使用API查看器)。
Form1中的代碼:
在Declare中定義全局變量:
Const bmpfilemax=5 ′總共5個bmp文件。
Dim bmpfile(bmpfilemax)As String ′bmp文件的文件名數(shù)組。
Dim drawbmpmode(bmpfilemax) As Integer ′各畫顯示時的切換方式。
Dim bmpnum,movestep,xmax,ymax As Integer
Dim kxy As Single ′x,y二個方向的比例。
程序運(yùn)行時先作初始化工作:
Private Sub Form-Load ()
bmpnum=0 ′當(dāng)前文件號=0,第一個文件。
bmpfile(0)=App.Path+′′\bmp1.bmp′′
bmpfile(1)=App.Path+′′\bmp2.bmp′′
bmpfile(2)=App.Path+′′\bmp3.bmp′′
bmpfile(3)=App.Path+′′\bmp4.bmp′′
bmpfile(4)=App.Path+′′\bmp5.bmp′′
drawbmpmode(0)=1 drawbmpmode(1)=5
drawbmpmode(2)=3 drawbmpmode(3)=4
drawbmpmode(4)=2 movestep=0
xmax=Form.ScaleWidth/2
ymax=Form.ScaleHeight/2
kxy =ymax/xmax
Picture1.Picture=LoadPicture(bmpfile(bmpnum))
Timer1.Interval=30 ′定時器啟動。
End Sub
相關(guān)推薦:2010年全國計算機(jī)等級二級VB考試題型與解題技巧北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |