vs2010中正确加载gif格式图片

实现方法如下:

一.显示GIF图片控件类的介绍:
(CPictureEx类下载地址:http://download.csdn.net/detail/wangtiti/4372882

      无论是在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.建立一个对话框的MFC工程。将GIF动画图片资源文件拷贝至工程目录的Res文件夹下,然后用添加资源的方法将这两个资源文件导入到你的工程中。 
            步骤:导入资源——找到要加载的GIF格式的文件——导入——资源类型写GIF,确定
VS2010 中如果直接添加 GIF后缀的资源,会将GIF文件内部强制转化为静态BMP文件,从而使GIF图片失去动态效果,故在加载前应改个后缀如:.gifa。 )

    2.拷贝PictureEx.h和PictureEx.cpp到你的工程目录下,然后在将该类添加到你的工程中。

   

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

   添加: 

   #include "PictureEx.h"   


 

   定义:  
     

    CPictureEx* m_pGif;

 

     在对话框的实现文件(XXXXXDlg.cpp)中

    对话框初始化函数 BOOL CXXXXDlg::OnInitDialog()中添加如下代码:

 

		BOOL CXXXXDlg::OnInitDialog()
		{
			........

			m_pGif = new CPictureEx();
			if (m_pGif == NULL) return;
		
			RECT rt = {71,55,189,61};   //图片显示的矩形区域
			m_pGif->Create(_T(""),WS_CHILD | WS_VISIBLE | SS_NOTIFY,rt, this);
			m_pGif->ShowWindow(SW_SHOW);

//  			CString str;
//  			str = GetAppPath()+_T("resource\\LoadingProgress.gif");
//			if(m_pGif->Load(str))

			if (m_pGif->Load(MAKEINTRESOURCE(IDR_GIF_PROGRESS_LOADING),_T("GIF")))
			{
				m_pGif->SetAdID(_T("下载进度条"));
				m_pGif->SetPosition(0, 0);
				m_pGif->Draw();

			}
			else
			{
				delete m_pGif;
				m_pGif = NULL;
			}

			........
		}




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


注: 1、从资源中加载GIF图片时,加载前要把GIF图片的后缀名给换一下
          2、图片如果不能正常显示,把GIF图片资源重新导入下再试

上面是从资源中加载GIF图片,如果从指定路径中加载直接用注释的那部分代码

 

m_pGif可能需要自己销毁

 

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值