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