MFC_PictureEx

VS2010 对话框加载GIF图片[1]

[TOC]

Syntax

  • 在对话框中添加一个Staic或者Picture Control控件,修改ID

  • 为控件添加一个Control类型的变量,如CStaic m_picture

  • 在对话框*Dialog.h中包含PictureEx.h,即#include "PictureEx_src\PictureEx.h"

  • 修改*Dialog.h中控件变量的类型为CPictureEx

  • *Dialog.cpp中的OnInitDialog中添加

// 第一种我加载的GIF只显示一帧
// 从文件加载,成功返回1
//if ( m_picture.Load(_T("res\mypicture.gif") )
//{
  //m_picture.Draw;
//}
// 从资源加载
if (m_startGif.Load(MAKEINTRESOURCE(IDR_GIF2),_T("GIF")))
    {
         SetTimer(1,7500, NULL);  
        m_startGif.Draw();
    }
  • 设置停止

    • CPictureEx[Wnd]::Stop():停止播放

    • CPictureEx[Wnd]::UnLoad():停止播放并释放资源

    • 定时停止,在OnTimer()中添加

    CDialog::OnTimer(nIDEvent);
      switch (nIDEvent)
      {
      case 1:
          // stop the animation and free all its resources
          m_Picture.UnLoad();
          //OnOK();
          break;
      default:
          break;
      }
    

实现结果

MFC-Load-GIF

加载GIF资源[2]

直接加载GIF,图片会被VS2010改变成静态图片,将会修改图片文件头。

解决方法:

  1. 将GIF文件的属性设置为只读,然后再导入

  2. 加载GIF资源[3]

  • 打开资源视图,添加资源,选择自定义,输入“GIF"

  • 导入资源,直接添加对应的GIF图片,资源类型选中"GIF",导入的图片会被修改为静态图片

  • 打开解决方案浏览器,打开资源文件,右击添加,选择现有项,选中对应的GIF文件

    图片.png

  • 右击GIF文件,选择打开方式,选择二进制编辑器,打开
    图片.png
图片.png
  • 在二进制编辑器中可以看到,GIF文件头并没有被改变,全选,复制

  • 回到资源视图,选择插入GIF,复制的内容粘贴到新建的GIF资源里面来

图片.png

  1. Add GIF-animation to your MFC and ATL projects with the help of CPictureEx and CPictureExWnd ↩

  2. 添加GIF ↩

  3. 加载GIF资源 ↩

你可能感兴趣的:(MFC_PictureEx)