MFC中播放 GIF动画相关

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

VS2010 中如果直接添加 GIF后缀的资源,会将GIF文件内部强制转化为静态BMP文件 ,故在加载前应改个后缀如:.gifa。

实现方法如下:

一.显示GIF图片控件类的介绍:

      无论是在VC6.0还是在VS2010中,都没有自带控件能显示GIF动画图片。能显示一些静态图片的只是Picture控件。本例程用到的GIF动画显示控件类是 PictureEX。其定义文件是 PictureEx.h,类的实现文件是 PictureEx.cpp。有关该类的成员函数和方法说明如下:
程序代码:
BOOL Load(...) ——加载GIF 并准备绘画对象; 
BOOL Draw() ——绘制图像或继续动画显示。
void Stop() ——停止动画;
void UnLoad() —— 停止动画并释放所有资源;
void SetBkColor(COLORREF) ——为透明区域设置填充颜色; 
COLORREF GetBkColor() ——获取当前填充颜色;
BOOL IsGIF() —— 如果当前图像是 GIF 则返回 TRUE;
BOOL IsAnimatedGIF() ——如果当前图像是动画 GIF,则返回TRUE;
BOOL IsPlaying() ——如果当前图像是以动画方式显示则返回TRUE; 
SIZE GetSize() ——返回图像尺寸。
int GetFrameCount() ——返回当前图像的帧数量;
BOOL GetPaintRect(RECT *lpRect) ——返回当前绘制的矩形。
BOOL SetPaintRect(const RECT *lpRect) ——设置当前绘制的矩形;


二.编程应用步骤:

    1.首先在网上下载两个小的GIF动画图片,由于VS2008无法识别这样的文件的扩展名,会弹出输入文件类型的扩展名,输入一个字符串即可。这个字符窜在后面的代码中会用到。

    2.建立一个对话框的MFC工程。将下载的资源文件拷贝至工程目录的Res文件夹下,然后用添加资源的方法将这两个资源文件加载到你的工程中。

    3.这一步非常重要。首先在我的例程里拷贝PictureEx.h和PictureEx.cpp到你的工程目录下,然后在将该类添加到你的工程中。

    4.在对话框面板上添加两个Picture控件,分别给它们建立Control型的Static变量。如:m_pic。

    5.一切准备工作以经完成。下面是添加代码:
 在对话框类定义文件(XXXXDlg.h)中添加:

#include "PictureEx.h"   

找到: 
    Cstatic m_pic; 
    将其改为: 

    CPictureEx m_pic;//(或者直接在添加变量的过程中将类型由CStatic改为CPictureEx)。

    在对话框的实现文件(XXXXXDlg.cpp)中的对话框初始化函数 BOOL CGifPictureDlg::OnInitDialog()中添加如下代码:

if (m_pic.Load(MAKEINTRESOURCE(IDR_GIF1),_T("gif"))) //IDR_GIF1是添加的GIF动画的ID号。gif即是添加时所键入的文件类型

m_pic.Draw();

即可实现GIF动画格式图片的播放。

转载于:https://my.oschina.net/ypimgt/blog/61248

你可能感兴趣的:(MFC中播放 GIF动画相关)