VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
12
返回列表 发新帖
楼主: blueblues01

在VB中哪个图片控件支持GIF格式的图片

[复制链接]

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-8-29 11:45:01 | 显示全部楼层
要把  Windows提供的运动图像播放库quartz.dll(在c:\windows\system32下面)提供的播放函数播放导入到VB么?
回复

使用道具 举报

0

主题

7

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
发表于 2020-8-29 13:45:01 | 显示全部楼层
[Quote=引用 15 楼 jackzeng 的回复:]
要把  Windows提供的运动图像播放库quartz.dll(在c:\windows\system32下面)提供的播放函数播放导入到VB么?
[/Quote]


quartz.dll属COM组件,在VB工程中引用即可.像Flash动画、Animation动画一样,你可以循环播放(一直播放),也可以播放一次结束。
回复

使用道具 举报

0

主题

7

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
发表于 2020-8-29 14:30:01 | 显示全部楼层
[color=#0000FF][size=18px]在PictureBox控件中显示GIF动画,或GIF图片
简单几行搞定[/size]:[/color]
[code=VBScript]Option Explicit

'调用运动图像播放类型库Quartz.dll,在c:\windows\system32目录下
Public pMC As FilgraphManager '定义pMC为FilgraphManager对象
Public pVW As IVideoWindow '定义pVW为IVideoWindow对象
Public pVP As IMediaPosition
Public pBV As IBasicVideo

'播放GIF动画
Private Sub Command1_Click()
        On Error Resume Next
        Set pMC = New FilgraphManager
        pMC.Stop
        Set pVP = pMC
        pVP.StopTime = 0
        pMC.RenderFile ""
        
        
        On Error GoTo Lhandle
        pMC.RenderFile "E:\offline.gif" '加载GIF动画,并在PictureBox中播放
        Set pVP = pMC
        's = Str(pVP.Duration)
        
        On Error Resume Next
        Set pVW = pMC
        pVW.WindowStyle = CLng(&H6000000)
        pVW.Left = 0: pVW.Top = 0
        
        
        pVW.Owner = Picture1.hWnd
        pVW.MessageDrain = Picture1.hWnd
        pMC.Run
        
        
        Exit Sub
Lhandle:
        MsgBox ("加载文件错误!")
End Sub

'停止播放GIF动画
Private Sub Command2_Click()
        pMC.Stop
End Sub[/code]
回复

使用道具 举报

0

主题

7

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
发表于 2020-8-29 15:00:02 | 显示全部楼层
[code=VBScript]'改了一下,限定图像缩放到Picture1的大小
'在PictureBox控件中显示GIF动画(图片),凡有句柄hwnd的窗体控件均可以
Option Explicit

'调用运动图像播放类型库Quartz.dll,在c:\windows\system32目录下
Private pMC As FilgraphManager '定义pMC为FilgraphManager对象
Private pVW As IVideoWindow '定义pVW为IVideoWindow对象
'Public pVP As IMediaPosition
'Public pBV As IBasicVideo

'播放GIF动画
Private Sub Command1_Click()
        On Error Resume Next
        Set pMC = New FilgraphManager
        pMC.Stop
        'Set pVP = pMC
        'pVP.StopTime = 0
        pMC.RenderFile ""
        
        
        On Error GoTo Lhandle
        pMC.RenderFile "E:\offline.gif" '加载GIF动画,并在PictureBox中播放
        'Set pVP = pMC
        's = Str(pVP.Duration)
        
        On Error Resume Next
        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 ("加载文件错误!")
End Sub

'停止播放GIF动画
Private Sub Command2_Click()
        pMC.Stop
        Set pVW = Nothing
        Set pMC = Nothing
End Sub

Private Sub Form_Load()
        Me.ScaleMode = 3
        Picture1.ScaleMode = 3
End Sub[/code]
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-8-29 15:15:01 | 显示全部楼层
deathadam 的方法不错

回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-8-29 15:30:01 | 显示全部楼层
谢谢 quartz.dll 我倒是没用过, 刚试了一下, 是可以动, 但最大的一个问题是, 请问它能设背景透明吗 ?

我用了透明的 .gif 但还是无法透明, 如无法透明的话, 则quartz.dll 的利用价值就没啦......
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-8-29 15:45:01 | 显示全部楼层
Mark.

Up....
回复

使用道具 举报

0

主题

7

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
发表于 2020-8-29 16:30:01 | 显示全部楼层
[Quote=引用 21 楼 ak595959 的回复:]
谢谢 quartz.dll 我倒是没用过, 刚试了一下, 是可以动, 但最大的一个问题是, 请问它能设背景透明吗 ?

我用了透明的 .gif 但还是无法透明, 如无法透明的话, 则quartz.dll 的利用价值就没啦......
[/Quote]

不能透明,只是一种方法而已!当然不如你上面做的那个!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表