MFC添加gif动画

显示gif动画,这里用到CPictureEx类库,从网上能找到,下面一步一步来实现显示gif动画。

1、创建一个对话框,在对话框上添加一个图片控制和一个文控件,效果如下图:

2、图中的灰色块就是图片控件,要修改它的属性才会变成灰块,修改了两个属性,如下图:

3、选中图片控件,Ctrl + 双击,给它添加成员变量:

// CStatic m_gifCtrl;
CPictureEx m_gifCtrl;

添加的变量是CStatic m_gifCtrl,我们把它改成CPictureEx m_gifCtrl,当然,要添加CPictureEx头文件,在对话框的头文件中添加:

#include "PictureEx.h"

4、在对话框的OnInitDialog()函数中添加如下代码就可以显示动态gif图片了:

 1 BOOL CDlgWaiting::OnInitDialog()
 2 {
 3     CDialogEx::OnInitDialog();
 4
 5     CString strFile = GetAbsolutePath() + _T("waiting.gif");
 6     if (m_gifCtrl.Load(strFile))
 7     {
 8         m_gifCtrl.Draw();
 9     }
10     return TRUE;
11 }

注意:我用VS2012,如果把gif文件添加到项目的资源中,第6行使用Load资源的方式加载gif,那最后显示出来的是表态图片,并不是动态的图片。

这里我把gif图片放到了执行文件的目录下,所以调用GetAbsolutePath()函数来获取执行文件的目录,GetAbsolutePath()函数代码如下:

 1 // 获取执行文件所有的路径
 2 CString GetAbsolutePath()
 3 {
 4     CString strTemp;
 5     TCHAR *pBuf = strTemp.GetBuffer(MAX_PATH);
 6
 7     ::GetModuleFileName(NULL, pBuf, MAX_PATH);
 8     strTemp.ReleaseBuffer();
 9     strTemp = strTemp.Left(strTemp.ReverseFind(_T(‘\\‘))) + _T(‘\\‘);
10
11     return strTemp;
12 }

最后运行程序,我在另一个窗口中点击执行,弹出这个有gif动画的窗口,效果如下图:

用到的gif图片是,用http://preloaders.net/网站生成的。

时间: 2024-10-11 22:44:46

MFC添加gif动画的相关文章

MFC显示GIF动画图片

本帖则将讨论如何在MFC的对话框里显示GIF动画图片.一些关于传统控件的美化方法正在研究当中会陆续发帖的. 这是本帖用到的一个VS2008例程.  附件  GifPicture.rar (138.1 KB) 上传时间:2009-11-25 16:15下载次数:1173 一.显示GIF图片控件类的介绍:   无论是在VC6.0还是在VS2008中,都没有控件能显示GIF动画图片.能显示一些静态图片的只是Picture控件.本例程用到的GIF动画显示控件类是PictureEX.其定义文件是Pictu

Animate.css让添加CSS动画像喝水一样容易

animate.css是一堆很酷的,有趣的,跨浏览器的动画效果库,你可以随意在你的项目中使用.用在你想要突出的任何地方,如主页,滑块,这像喝水一样容易,迷死人了. 用法 在您的网站上使用animate.css,只要简单地把样式表插入到文档中的<HEAD>中,并为需要动画的元素添加一个CSS类名即可,以及动画的名称.就是这样!你就有了一个CSS动画效果.超强! <head>   <link rel="stylesheet" href="animat

MFC添加启动画面与CImage结合版

最近做一个启动画面,发现Splash只能加载bitmap,发现bitmap图片效果不太好,所以找了下在C++中有什么可以加载PNG或者JPG等类型的图片,在网上找半天后,发现CImage这个类相当好用,而且还可以和CBitmap相互转换,这样我只要修改一小段代码,就可以实现用位图以外的图片来做启动画面了,在找图片的时候也不这么麻烦,因为CImage基本支持多种图片格式,很好用.详细可以自行百度哦.下面附上代码. 1.在工程中添加C++类,CWzdSplash.基类是CWnd 添加代码: #ifn

MFC添加背景图片

1.在资源里导入一个bmp图片假设名称为IDB_BITMAP1 实现OnPaint方法 CPaintDC dc(this); CRect rect; GetClientRect(&rect); CDC dcMem; dcMem.CreateCompatibleDC(&dc); CBitmap bmpBackground; bmpBackground.LoadBitmap(IDB_BITMAP1); //IDB_BITMAP是你自己的图对应的ID BITMAP bitmap; bmpBack

JavaScript网站设计实践(三)设计有特色的主页,给主页链接添加JavaScript动画脚本

原文:JavaScript网站设计实践(三)设计有特色的主页,给主页链接添加JavaScript动画脚本 一.主页一般都会比较有特色,现在在网站设计(二)实现的基础上,来给主页添加一点动画效果. 1.这里实现的动画效果是:当鼠标悬停在其中某个超链接时,会显示出属于该页面的背景缩略图,让用户知道这个链接的页面大概内容是什么. 效果图: 2.实现这个效果的思路 (1)把主页的几个链接的背景图片缩放到150px*150px,拼成一张750*150的图片,并保存为slideshow.png,存放到ima

精通RecyclerView:打造ListView、GridView、瀑布流;学会添加分割线、 添加删除动画 、Item点击事件

转载请注明出处:http://blog.csdn.net/linglongxin24/article/details/53126706 本文出自[DylanAndroid的博客] 精通RecyclerView:打造ListView.GridView.瀑布流:学会添加分割线. 添加删除动画 .Item点击事件 在上一篇Android用RecyclerView练手仿美团分类界面写了RecyclerView的基本用法, 今天想想,在这里重新学习一下RecyclerView的完整用法.包括如何打造一个普

UITableView添加波浪动画效果

- (void)reloadDataAnimateWithWave:(WaveAnimation)animation; { [self setContentOffset:self.contentOffset animated:NO]; [UIView animateWithDuration:.2 animations:^{ [self setHidden:YES]; [self reloadData]; } completion:^(BOOL finished) { //Do something

用Quick3.3简单开发微信打飞机 (三)----------------------------- 添加爆炸动画和子弹与敌机的碰撞

用Quick3.3简单开发微信打飞机03 添加爆炸动画和子弹与敌机的碰撞 这个就作为最后一篇吧,当然,可以扩展的方面还有很多,比如分数的记录,结算界面还有一些小道具等,就不添加了.这只是当作一个简单的入门,而在这个入门中确实学到了不少东西.而那些没添加的东西呢,其实,就没那么重要了.没有太难的知识点.所以,就没必要纠结太长时间了. 碰撞检测: 碰撞检测重新写了一个计时器,这个计时器是每帧调用的,也就是每秒调用60次.但是,没有用updata. 检测碰撞的函数如下: [plain] view pl

android animation——添加购物车动画(填坑和优化)

我们经常看到不管是某宝还是某东都有加入购物车的动画.就是在点击某个商品后,这个商品变成小的缩略图移动到购物车里面去. 今天突然想着把原来做过的这么一个动画贴出来供大家学习. 先看效果图.gif工具不忍直视,真实操作是很流畅的一个抛物线. 首先从效果图看出来我们需要几个东西. 1,动画的开始位置 2,动画的结束位置 3,动画移动的图片(这里为了简单用一个小圆点,可以换成商品的缩略图) 4,动画的弧度如何处理 5,动画完成后在哪里操作数据 6,连续点击图片动画时如何new出多个动画 那么我们就来解决