MFC添加gif動畫


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/網站生成的。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM