mfc对话框中添加gif动画

来源:互联网 发布:js控制浏览器最小化 编辑:程序博客网 时间:2024/04/26 22:09

mfc添加gif动画:(在vs2012环境下)

⑴:创建一个对话框应用程序(例如GiftPicture);

⑵:在GiftPicture的源代码目录下添加"CPictureEx.h"和 "CPictureEx.cpp"(这两个百度可以搜索到);

⑶:在项目中添加上刚放入的CPictureEx类;

⑷:在资源视图中添加资源(新建资源--------导入------“你需要添加的gif图片”),在接下来的自定义类型中输入一个字符串(比如"GIF");

⑸:在对话框的Dialog中添加一个picture control控件(我创建了两个picture control控件,分别为:IDC_GIFWND,IDC_GIFWND1)


通过类向导给picture control添加一个变量(先contorl ----static)例如我的IDC_GIFWND对应的变量为m_gifpicture,IDC_GIFWND1对应的变量为m_girl;

⑹:在GiftPictureDlg.h中间刚定义的变量类型改为"CPictureEx"

CPictureEx m_gifpicture;CPictureEx m_girl;

⑺:在CGifPictureDlg::OnInitDialog()中添加如下代码:

// TODO: 在此添加额外的初始化代码if (m_gifpicture.Load(MAKEINTRESOURCE(IDR_GIF1),_T("gif")))m_gifpicture.Draw();if (m_girl.Load(MAKEINTRESOURCE(IDR_GIF2),_T("gif")))m_girl.Draw();
⑻:完成编译即可;例如我的为:


由于是截图,所以看不见动态效果,不过是可以的。




ps:在通过资源视图加载gif图像时,加载的gif图像损坏,没有动态效果:可以有一下解决办法:
(1):在GifPicture.rc中通过查看代码自己可以定义一个
///////////////////////////////////////////////////////////////////////////////// GIF//IDR_GIF1                GIF                     "res\\child.gif"IDR_GIF2                GIF                     "res\\girl.gif"
(2):在resource.h为上述的IDR_GIF1和IDR_GIF2定义资源
#define IDR_GIF1                        141#define IDR_GIF2                        143