吧务
level 13
' 底图、音乐、动画 -----------------------------------------------
'
' 文件(F) 工具栏(T) 退出(X)
' ================================================
' 背景图片(A) 显示工具栏 (X)
' 背景音乐(B) 隐藏工具栏 (Y)
' ----------- ---------------
' 动画参数(D) 显示播放按钮(P)
' ----------- 隐藏播放按钮(C)
' 退 出 (X) ---------------
' 显示动画 (D)
' 隐藏动画 (H)
' ================================================
' 点击:工程→部件,在【控件】卡中勾选要添加的部件
' 添加“CommonDialog”(通用对话框)部件
' Microsoft Commom Dialog Control 6.0
' 添加“MMControl”(多媒体控件)部件
' Microsoft MultiMedia Control 6.0
' ………………………………………………………………………………………
Option Explicit ' 变量要先定义,后使用
Dim i%, j%, Xz$, DH$, Wjm$, mPATH$, Sj#
' 恢复程序所在路径——①
Private Declare Function SetCurrentDirectory Lib "kernel32" Alias _
"SetCurrentDirectoryA" (ByVal lpPathName As String) As Long
Public Sub KjWz() ' 控件的位置计算子程序:KjWz
Frame1.Width = Me.Width - 250
【退出】.Left = Me.Width - 710
Image1.Width = Frame1.Width
If Xz = "Y" Then ' 显示工具栏 ---------------
Frame1.Visible = True
Image1.Top = 575
Image1.Height = Me.Height - 1420
Else ' 隐藏工具栏
Frame1.Visible = False
Image1.Top = 0
Image1.Height = Me.Height - 850
End If
If DH = "Y" Then ' 显示动画 ---------------
For i = 0 To 5
Image2(i).Visible = True
Image2(i).Left = Me.Width - 1700
Image2(i).Top = Image1.Top
Next i
Else ' 隐藏动画
For i = 0 To 5: Image2(i).Visible = False: Next i
End If
End Sub
Public Sub 图片文件() ' 【图片文件】子程序 ----
On Error GoTo CW01
CommonDialog1.CancelError = True ' 允许按【Esc】
Wjm = "通用压缩格式图片(*.JPG)|*.JPG"
Wjm = Wjm + "|GIF 压缩格式图片(*.GIF)|*.GIF"
Wjm = Wjm + "|位图图片文件(*.Bmp)|*.Bmp"
Wjm = Wjm + "|所有文件(*.*)|*.*"
CommonDialog1.Filter = Wjm ' 文件类型过滤器
CommonDialog1.Action = 1 ' CommonDialog1.ShowOpen
Wjm = CommonDialog1.FileName ' 浏览出来的文件名
If Dir(Wjm, vbHidden) <> "" Then ' 如果图片文件存在
Image1.Picture = LoadPicture(Wjm) ' 装载图片
End If
SetCurrentDirectory mPATH ' 恢复程序所在路径——②
ChDir mPATH
Exit Sub
CW01:
MsgBox "不是图片文件!", 0 + 64, "系统提示"
End Sub
Public Sub 音乐文件() ' 【音乐文件】子程序 ----
On Error GoTo CW02
CommonDialog1.CancelError = True ' 允许按【Esc】
Wjm = "Mp3音乐文件(*.Mp3)|*.Mp3"
Wjm = Wjm + "|Wave波形音乐文件(*.WAV)|*.WAV"
Wjm = Wjm + "|Wma压缩音乐文件(*.Wma)|*.WMA"
Wjm = Wjm + "|所有文件(*.*)|*.*"
CommonDialog1.Filter = Wjm ' 文件类型过滤
CommonDialog1.Action = 1 ' CommonDialog1.ShowOpen
Wjm = CommonDialog1.FileName ' 浏览出来的文件名
MMControl1.Command = "Stop" ' 停止播放音乐
MMControl1.FileName = Wjm ' 指定新的音乐文件
MMControl1.Command = "Open" ' 打开多媒体文件
MMControl1.Command = "play" ' 播放多媒体文件
SetCurrentDirectory mPATH ' 恢复程序所在路径——②
ChDir mPATH
Exit Sub
CW02:
MsgBox "没有选择音乐文件!", 0 + 64, "系统提示"
End Sub
Private Sub 【退出】_Click()
Unload Me: End
End Sub
Private Sub CD11_Click()
Call 图片文件
End Sub
Private Sub CD12_Click()
Call 音乐文件
End Sub
Private Sub CD14_Click()
Sj = InputBox("请输入动画分图的显示间隔时间(秒):", "输入提示", 0.15)
Timer1.Interval = 1000 * Sj
End Sub
Private Sub CD19_Click()
Unload Me: End
End Sub
Private Sub CD21_Click()
CD21.Caption = "√显示工具栏 (&S)"
CD22.Caption = " 隐藏工具栏 (&Y)"
Xz = "Y": Call KjWz
End Sub
Private Sub CD22_Click()
CD21.Caption = " 显示工具栏 (&S)"
CD22.Caption = "√隐藏工具栏 (&Y)"
Xz = "N": Call KjWz
End Sub
Private Sub CD24_Click()
CD24.Caption = "√显示播放按钮 (&P)"
CD25.Caption = " 隐藏播放按钮 (&C)"
MMControl1.Visible = True
End Sub
Private Sub CD25_Click()
CD24.Caption = " 显示播放按钮 (&P)"
CD25.Caption = "√隐藏播放按钮 (&C)"
MMControl1.Visible = False
End Sub
Private Sub CD27_Click()
CD27.Caption = "√显示动画 (&D) "
CD28.Caption = " 隐藏动画 (&H) "
DH = "Y": Call KjWz
For i = 0 To 5: Image2(i).Visible = True: Next i
End Sub
Private Sub CD28_Click()
CD27.Caption = " 显示动画 (&D) "
CD28.Caption = "√隐藏动画 (&H) "
For i = 0 To 5: Image2(i).Visible = False: Next i
DH = "N"
End Sub
Private Sub CD2A_Click()
Wjm = "C:\Program Files\Windows Media Player\Wmplayer.exe"
If Dir(Wjm) <> "" Then ' 判断播放器文件是否存在
MMControl1.Command = "Stop" ' 停止播放音乐
Shell Wjm, vbNormalNoFocus
End If
End Sub
Private Sub CD90_Click()
Unload Me: End
End Sub
Private Sub Command1_Click()
Call 图片文件
End Sub
Private Sub Command2_Click()
Call 音乐文件
End Sub
Private Sub Command3_Click()
Sj = InputBox("请输入动画分图的显示间隔时间(秒):", "输入提示", 0.15)
Timer1.Interval = 1000 * Sj
End Sub
Private Sub MMControl1_Done(NotifyCode As Integer)
' 重复播放音乐
If NotifyCode = 1 Then
MMControl1.From = 0
MMControl1.Command = "PLAY"
End If
End Sub
Private Sub Form_Initialize()
mPATH = App.Path ' 获取程序当前所在的路径
' 播放背景音乐
Wjm = "背景音乐.MP3"
MMControl1.Visible = True ' MMControl1 控件可见
MMControl1.FileName = Wjm ' 指定音乐文件
MMControl1.Command = "Open" ' 打开多媒体文件
MMControl1.Command = "Play" ' 播放多媒体(WAV格式)文件
' 控件的初始位置
Me.Width = 8000: Me.Height = 6000
Frame1.Left = 60: Frame1.Top = -80
Image1.Left = 60
Xz = "Y" ' 显示工具栏
DH = "Y" ' 显示动画
Timer1.Interval = 150 ' 动画参数:150毫秒
j = 0
Call KjWz
End Sub
Private Sub Form_Resize()
On Error Resume Next
Me.Width = IIf(Me.Width < 8000, 8000, Me.Width)
Me.Height = IIf(Me.Height < 6000, 6000, Me.Height)
Call KjWz
End Sub
Private Sub Timer1_Timer()
j = j + 1
j = IIf(j > 5, 0, j)
If DH = "Y" Then ' 显示动画
For i = 0 To 5
If i < j Then Image2(i).Visible = False
If i = j Then Image2(i).Visible = True
If i > j Then Image2(i).Visible = False
Next i
End If
End Sub
2015年08月08日 16点08分
2
有人需要提出了怎样将图片融入窗体的问题,正好我这里有一个,简单整理一下,贴出来,以便参考。
2015年08月09日 03点08分
好,向罗老师学习
2020年06月03日 02点06分
level 7
罗老师,这个动画是怎么回事?是本身就是gif图片还是由一个普通的图片自动生成动画的呢?
2021年10月26日 06点10分
19
动画本就是一帧帧动作图组合成,定时循环播放,可以用GDI+函数解析Gif图片并绘制,当然也可以用timer控件控制一张张播放bmp或jpg
2021年10月26日 06点10分
VB 不支持【多张图片合成的GIF文件的自动播放】,对于多张图片合成的GIF文件,VB的【Picture】等图片控件仅仅只显示第一张而已。
2021年10月27日 00点10分
@Luosen56 罗老师,我现在有15张图片,那把这15张图片用动画的方式播放出来,你这个代码能实现吗?还有能不能加上画外音解说?
2021年10月27日 04点10分
建议不用VB,用摄录像方式。
2021年10月28日 03点10分