iokey 发表于 2019-6-24 14:33

【VC】【转载】MFC显示GIF

本帖最后由 iokey 于 2019-6-24 14:57 编辑

         显示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图片了:
BOOL CMFC_GIFDlg::OnInitDialog()
{
      CDialog::OnInitDialog();

      // Set the icon for this dialog.The framework does this automatically
      //when the application's main window is not a dialog
      SetIcon(m_hIcon, TRUE);                        // Set big icon
      SetIcon(m_hIcon, FALSE);                // Set small icon
      
      // TODO: Add extra initialization here
      CString strFile = GetAppPath() + _T("dog.gif");
      if (m_gifCtrl.Load(strFile))
      {
                m_gifCtrl.Draw();
      }

      return TRUE;// return TRUEunless you set the focus to a control
}

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


CString GetAppPath()   
{   
      CString strTemp;   
      TCHAR *pBuf = strTemp.GetBuffer(MAX_PATH);
      
      ::GetModuleFileName(NULL, pBuf, MAX_PATH);   
      strTemp.ReleaseBuffer();
      strTemp = strTemp.Left(strTemp.ReverseFind(_T('\\'))) + _T('\\');
      return strTemp;
}





页: [1]
查看完整版本: 【VC】【转载】MFC显示GIF