在窗体中创建两个picturebox,其中picture1的visible属性为flase,picture属性中为一张设定的图片Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private 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 Sub Form_Paint()
Dim x1, x2, Dx, P1, P2 As Single
Dim D, I As Integer
D = 300Dx = Picture1.Width / D
P2 = Picture1.Height
x1 = Picture1.Width / 2 '从中间开始
x2 = x1Picture2.Cls
For I = 1 To D / 2'从中间向左边显示图片
BitBlt Form1.Picture2.hDC, x1, 0, Dx + 1, P2, Form1.Picture1.hDC, x1, 0, &HCC0020
x1 = x1 - Dx
'从中间向右边显示图片
BitBlt Form1.Picture2.hDC, x2, 0, Dx + 1, P2, Form1.Picture1.hDC, x2, 0, &HCC0020
x2 = x2 + Dx
Sleep 50
Next I
End Sub
请问上述代码哪里出了问题呢?我想要的是从中间向两边显示图版,可是怎么出现的效果是从右边向左边显示图片的?
Private 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 Sub Form_Paint()
Dim x1, x2, Dx, P1, P2 As Single
Dim D, I As Integer
D = 300Dx = Picture1.Width / D
P2 = Picture1.Height
x1 = Picture1.Width / 2 '从中间开始
x2 = x1Picture2.Cls
For I = 1 To D / 2'从中间向左边显示图片
BitBlt Form1.Picture2.hDC, x1, 0, Dx + 1, P2, Form1.Picture1.hDC, x1, 0, &HCC0020
x1 = x1 - Dx
'从中间向右边显示图片
BitBlt Form1.Picture2.hDC, x2, 0, Dx + 1, P2, Form1.Picture1.hDC, x2, 0, &HCC0020
x2 = x2 + Dx
Sleep 50
Next I
End Sub
请问上述代码哪里出了问题呢?我想要的是从中间向两边显示图版,可是怎么出现的效果是从右边向左边显示图片的?
'左右开门
Private Sub special15(ByRef p1 As PictureBox, ByRef p2 As PictureBox)
Dim w, h, x, y As Integer
w = p1.Width
h = p1.Height
x = w \ 2 + 1
y = x 'y在此是当X坐标用
While x >= 0BitBlt p2.hdc, x, 0, 1, h, p1.hdc, x, 0, &HCC0020
BitBlt p2.hdc, y, 0, 1, h, p1.hdc, y, 0, &HCC0020
p2.Refresh
x = x - 1
y = y + 1
Wend
End Sub