vb添加GIF动态图片
众说周知,GIF格式动画文件具有小巧、制作方便等特点,因此在网上得到广泛应用,在vb的picturebox和image控件添加图片后变成静止的了,这给我们设计VB应用程序带来了不便。原来以为实现起来特别的麻烦,又要注册控件,还得添加部件。通过学习方法特别很多,而且并没有多麻烦: 一、最简单的方法 1、在picturebox控件中添加gif格式图片 首先、需要注册,注册方法:在工程中选中“引用”→引用项目ActiveMovie Control type Libray→然后点击“确定”键即可。 其次、'在PictureBox控件中显示GIF动画(图片),凡有句柄hwnd的窗体控件均可以;在窗体Form1上添加2个命令按钮Command1,Command2和1个图片框控件Picture1。 (1)、在代码窗口的通用段添加: '调用运动图像类型库Quartz.dll,在c:windowssystem32目录下
Private pMC As FilgraphManager '定义pMC为FilgraphManager对像
Private pVW As IVideoWindow '定义pVW为IVideoWindow对像
(2)、command1的单击事件 PrivateSub Command1_Click() On Error Resume Next Set pMC = New FilgraphManager pMC.Stop pMC.RenderFile "" '加载GIF文件 OnErrorGoTo Lhandle ' pMC.RenderFile App.Path & "enter.gif" '加载GIF动画(图片) pMC.RenderFile App.Path & "20110606.jpg" OnErrorResumeNext Set pVW = pMC pVW.WindowStyle = CLng(&H6000000) '限定动画在Picture1的大小中 pVW.Left = 0 pVW.Top = 0 pVW.Width = Picture1.ScaleWidth pVW.Height = Picture1.ScaleHeight pVW.Owner = Picture1.hWnd '在Picture1中显示 pVW.MessageDrain = Picture1.hWnd '此行非常重要,用来定义动画的右键菜单所必须 pMC.Run Exit Sub Lhandle: MsgBox ("Load Error!") End Sub (3)、command2的单击事件 Private Sub Command2_Click()
pMC.Stop
Set pVW = Nothing
Set pMC = Nothing
End Sub
(4)、窗体的下载事件 PrivateSub Form_Load() Me.ScaleMode = 3 Picture1.ScaleMode = 3 End Sub 2、在image控件中添加gif格式图片中 由于image控件没有句柄,实现起来有点麻烦,而且效果不是很好,基本的过程和代码是一样,只是有点稍微的区别 首先、注册跟上面一样。 其次、在窗体Form1上添加2个命令按钮Command1,Command2和1个图片框控件image1 (1)、在代码窗口的通用段添加: '调用运动图像类型库Quartz.dll,在c:windowssystem32目录下 Private pMC As FilgraphManager Private pVW As IVideoWindow (2)、command1的单击事件 Private Sub Command1_Click()
On Error Resume Next
Set pMC = New FilgraphManager
pMC.Stop
pMC.RenderFile ""
'加载GIF文件
On Error GoTo Lhandle
pMC.RenderFile "c:1.gif" '加载GIF动画(图片)
'On Error Resume Next
Set pVW = pMC
pVW.WindowStyle = CLng(&H6000000)
pVW.Left = 0
pVW.Top = 0
pVW.Width = Image1.Width / Screen.TwipsPerPixelX
pVW.Height = Image1.Height / Screen.TwipsPerPixelY
pVW.Owner = 0
pVW.MessageDrain = 0
pMC.Run
Exit Sub
Lhandle:
MsgBox ("加载文件错误!")
End Sub
(3)、command2的单击事件 Private Sub Command2_Click()
pMC.Stop
Set pVW = Nothing
Set pMC = Nothing
End Sub
(4)、窗体的初始化 Private Sub Form_Load() Image1.Visible = False Image1.Width = Screen.TwipsPerPixelX Image1.Height = Screen.TwipsPerPixelY Set Image1.Picture = LoadPicture("c:1.gif") End Sub 绿色是代码不相同的地方,控件不同,添加的gif的图片最终实现的效果也不相同。 二、一个全新的处理方案:通过在VB中调用IE浏览器来实现GIF动画的播放,实际使用表明:效果甚好。 具体方法如下: 1.由于WebBrowser控件并不是VB的基本控件,因此在使用该控件之前必须先将其装入工具箱中。装入方法:在工具箱中点击鼠标右键→选中“部件”→复选Microsoft Internet Controls→然后点击“确定”键即可或在工程中选中“部件”→复选Microsoft Internet Controls→然后点击“确定”键即可。 2.选取WebBrowser控件,添加到窗体的相应位置上。 3.设计相应代码,通过使用WebBrowser控件的Navigate方法播放GIF动画文件。 Navigate方法的语法格式为: WebBrowser控件名.NavigateURL[Flags,][TargetFrameName,][PostData,][Headers] WebBrowser控件支持的主要方法有: GoBack: 回退到上一屏。 GoForward: 进入到下一屏。 GoHome: 回家。即回到主页。 Stop: 停止导航。 Refresh: 刷新。 Navigate:导航。 WebBrowser控件所响应的事件: BeforeNavigate事件: 在开始导航前发生。一般在此获取完整的URL字符串。 WebBrowser控件最主要的参数: URL: 获得导航用的标准URL字符串。例如:它能将”www.MicroSoft.Com”自动翻译为“http://www.MicroSoft.com”.URL是Uniform Resource Locator的缩写,是在Internet的WWW服务程序上用于指定信息位置的表示方法。 下面我们结合一个实例进行具体说明:动画用WebBrowser控件实现播放。 所需控件: WebBrowser控件 Private Sub Form_Load() ’在Form_Load()事件中进行初始化工作
WebBrowser1.Navigate(App.Path& "new1.gif ")
end sub
三、最麻烦的方法 用PictureBox控件或Image控件或窗体的背景图片来显示动的图片,可以考虑用Timer控件使每隔一定的时间就更改一次控件的Picture属性来切换控件的图片以达到动画的效果。 首先要用Gif编辑软件将Gif图片中的一个个小图片另存到“C:新建文件夹”中,并依次重命名为0.gif、1.gif、2.gif…… 然后写代码: Dim i As Integer
Private Sub Timer1_Timer()
On Error Goto Err
url = "C:新建文件夹" & i & ".gif"
Me.Picture = LoadPicture url
i = i + 1
Exit Sub
Err:
i = 0
Exit Sub (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |