809
社区成员
发帖
与我相关
我的任务
分享
'窗体上添加2个CommandButton、1个PictureBox、1个Timer控件。'
Option Explicit
Const IMAGE_WIDTH As Long = 700
Const IMAGE_HEIGHT As Long = 420
Const SLIDE_STEP As Long = 140
Private m_ID As Long
Private m_thisImg As IPictureDisp
Private m_prevImg As IPictureDisp
Private m_thisX As Long
Private m_prevX As Long
Private m_Step As Long
Private Sub LoadImage()
Set m_prevImg = m_thisImg
Set m_thisImg = LoadPicture(App.Path & "\" & m_ID & ".jpg")
End Sub
Private Sub ShowImage()
Picture1.PaintPicture m_thisImg, m_thisX, 0
If Not m_prevImg Is Nothing Then
Picture1.PaintPicture m_prevImg, m_prevX, 0
End If
End Sub
Private Sub StartSlide()
Timer1.Enabled = True
Command1.Enabled = False
Command2.Enabled = False
End Sub
Private Sub StopSlide()
Timer1.Enabled = False
Command1.Enabled = True
Command2.Enabled = True
End Sub
Private Sub Command1_Click()
m_ID = ((m_ID - 2 + 6) Mod 6) + 1
LoadImage
m_thisX = IMAGE_WIDTH
m_prevX = 0
m_Step = -SLIDE_STEP
StartSlide
End Sub
Private Sub Command2_Click()
m_ID = (m_ID Mod 6) + 1
LoadImage
m_thisX = -IMAGE_WIDTH
m_prevX = 0
m_Step = SLIDE_STEP
StartSlide
End Sub
Private Sub Form_Load()
Me.ScaleMode = vbPixels
Picture1.ScaleMode = vbPixels
Picture1.BorderStyle = vbBSNone
Picture1.Width = IMAGE_WIDTH
Picture1.Height = IMAGE_HEIGHT
Command1.Caption = "<"
Command2.Caption = ">"
Timer1.Enabled = False
Timer1.Interval = 56
m_ID = 1
LoadImage
End Sub
Private Sub Picture1_Paint()
ShowImage
End Sub
Private Sub Timer1_Timer()
m_thisX = m_thisX + m_Step
m_prevX = m_prevX + m_Step
If (m_thisX = 0) Or (Sgn(m_thisX) = Sgn(m_Step)) Then
m_thisX = 0
Set m_prevImg = Nothing
StopSlide
End If
ShowImage
End Sub