都可以使用 API 函数 Bitblt 实现
因第一个问题较简单,故将自创源码Copy于下:
Option ExplicitPublic Declare Function GetTickCount Lib "kernel32" () As Long
Public Declare Function BitBlt Lib "gdi32" (ByVal 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 LongPrivate Const SRCAND = &H8800C6
Private Const MERGEPAINT = &HBB0226Public Sub Scring(ByVal BGPic As Object, ByVal ScrPic As Object, ByVal StartYPos As Integer, EndYPos As Integer)
Dim T
Dim G As Integer
ScringY = BGPic.ScaleHeight + 1
Scrolled = False
Do
Do: Loop Until GetTickCount - 25 > T
T = GetTickCount
With BGPic
.Cls
BitBlt .hdc, 177, ScringY + 1, 316, 2107, ScrPic.hdc, 0, 0, MERGEPAINT
ScringY = ScringY - 1: If ScringY < EndYPos Then ScringY = .ScaleHeight + StartYPos
.Refresh
End With
DoEvents
Loop Until Scrolled
End Sub
准备两张Picture,并Load到PictureBox中,
使用Scring(背景图片框, 文字图片框, 开始位置, 结束位置)即可
调整左右位置,请调整Bitblt那一行的数字
因第一个问题较简单,故将自创源码Copy于下:
Option ExplicitPublic Declare Function GetTickCount Lib "kernel32" () As Long
Public Declare Function BitBlt Lib "gdi32" (ByVal 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 LongPrivate Const SRCAND = &H8800C6
Private Const MERGEPAINT = &HBB0226Public Sub Scring(ByVal BGPic As Object, ByVal ScrPic As Object, ByVal StartYPos As Integer, EndYPos As Integer)
Dim T
Dim G As Integer
ScringY = BGPic.ScaleHeight + 1
Scrolled = False
Do
Do: Loop Until GetTickCount - 25 > T
T = GetTickCount
With BGPic
.Cls
BitBlt .hdc, 177, ScringY + 1, 316, 2107, ScrPic.hdc, 0, 0, MERGEPAINT
ScringY = ScringY - 1: If ScringY < EndYPos Then ScringY = .ScaleHeight + StartYPos
.Refresh
End With
DoEvents
Loop Until Scrolled
End Sub
准备两张Picture,并Load到PictureBox中,
使用Scring(背景图片框, 文字图片框, 开始位置, 结束位置)即可
调整左右位置,请调整Bitblt那一行的数字
编译错误:
常数、固定长度字符串、数组、用户定义类型以及Declare语句不润徐作为对象模块的Pblic成员。
另外优美有更简单的办法?例如利用Timer?
另外,您是不是有病哦?
我给您的是一个模块的代码,可以在程序的任意地点调用。
有问题电我:
[email protected]