总结用CPictureEx加载gif动画的两种方法。
PictureEx图片显示类支持以下格式的图片:GIF (including animated GIF87a and GIF89a), JPEG, BMP, WMF, ICO, CUR等。
下载地址:http://download.csdn.net/download/derek80/5817505
1、你的对话框中加入一个静态文本控件(Static Text)或图片控件(Picture Control),Group Box也可以;
2、给控件的ID改个名字如IDC_MYPICTURE;
3、利用ClassWizard给控件添加变量。如:Category-Control,Variable type-CStatic;
4、在对话框的头文件中用CPictureEx替换CStatic(当然不要忘记在你的工程中加入PictureEx.h和PictureEx.cpp,并#include "PictureEx.h");
5、在OnInitDialog(或者其他什么你喜欢的地方)加入下面的代码:
if (m_Picture.Load(_T("mypicture.gif"))) //文件的路径,用相对路径或者绝对路径都行 m_Picture.Draw();
或者
if (m_Picture.Load(MAKEINTRESOURCE(IDR_GIF),_T("Gif")))//IDR_GIF导入工程gif的id属性,IDR_GIF是资源文件 m_Picture.Draw();
可以在onpaint()中移动加载gif的图片控件:
CRect rc =CRect(100,400,150,450); m_Picture.MoveWindow(&rc,true); m_Picture.Draw();
6、欣赏一下你的动画:)
你可以像处理标准的CStatic一样处理CPictureEx,可以手动创建它(实际上,当你的工程窗口不是对话框时,你必须得这样),调用CPictureEx::Create(), 接着调用CPicureEx::Load()和CPicture::Draw()。
1.dlg头文件定义:CPictureEx *pAutoGif;
要包含#include "PictureEx.h"
2.dlg的cpp文件实现动态加载gif:
pAutoGif=new CPictureEx(); pAutoGif->Create(NULL,WS_CHILD | WS_VISIBLE |SS_ENHMETAFILE,CRect(50,50,100,100),this,1234); if(pAutoGif->Load(_T("g1.gif"))) pAutoGif->Draw();