《底图、动画、音乐》程序
vb吧
全部回复
仅看楼主
吧务
level 13
Luosen56 楼主
2015年08月08日 16点08分 1
吧务
level 13
Luosen56 楼主
' 底图、音乐、动画 -----------------------------------------------
'
' 文件(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 11
罗老师1点发的帖子[啊]……
2015年08月08日 22点08分 3
level 15
哦又张版本了风格了
2015年08月08日 22点08分 4
level 13
嗯,建议
lz
求个小吧去
2015年08月09日 00点08分 5
罗老师本来就是吧?
2020年06月03日 02点06分
level 12
[真棒]嗯。。。
2015年08月09日 03点08分 6
66666666666666666
2015年08月12日 01点08分
小伙子 看到我了吧 狠狠 我平时只是很低调
2015年08月12日 01点08分
吧务
level 13
来森菌,你当小吧主吧,我给你弄一个。
2015年08月09日 04点08分 7
要得,你弄就是。我真名叫罗森。
2015年08月09日 05点08分
@Luosen56 [勉强]哦,看错了。不过就这样叫吧。影响深点
2015年08月09日 06点08分
@Luosen56 已经弄好了。要多多发表好的贴子啊
2015年08月09日 06点08分
level 10
支持
2015年08月09日 06点08分 8
level 11
马克与留名是一对好朋友
2015年08月09日 06点08分 9
level 11
路过
By 来自火星的VIP豪华超级手机的小尾巴
2015年08月09日 06点08分 10
level 8
我就看看
2015年08月12日 01点08分 11
level 7
罗老[吐舌]
2015年08月12日 12点08分 13
level 7
老师真用心~~
2015年08月13日 15点08分 14
level 1

2016年03月03日 14点03分 15
level 11
这个必须顶
2016年08月28日 16点08分 16
level 2
请开始你的表演
2018年04月10日 05点04分 17
level 2
马可波罗
2020年06月03日 01点06分 18
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分
1