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 通过这样简单的程序就可以实现“百叶窗”的切换特效,其实,只要有合适的算法,运用BitBlt函数能够实现的图形特效是无穷的。有兴趣的读者可以查阅有关VB的参考书。
没有相关教程