MFC 对话框背景图片每隔一秒显示一张,图片格式一定要是PNG,JPG格式,其他的不用

MFC 对话框背景图片每隔1秒显示一张,图片格式一定要是PNG,JPG格式,其他的不用。
MFC中,如何给基本对话框加上JPG格式的背景图片。。。。

我的题目意思是:10张JPG格式,或者PNG格式的图片,作为对话框的背景图片,且每隔1秒显示一张。(再次强调:不用BMP格式的图片。)

下面的代码是我从网上看的,但不知道放到程序的哪里,是OnInitDialog();还是OnPaint();还是其他的什么地方。

C/C++ code

#ifndef HIMETRIC_INCH
#define HIMETRIC_INCH 2540
#endif
  CString picfullname = "test.jpg";
  CDC* pDC = GetDC();
  IPicture* pPic;
  IStream* pStm;     
  
  CFileStatus fstatus;     //CFileStatus文件属性类
  CFile file;
  LONG cb;
  
  //打开文件并获得文件的真实大小
  if(file.Open(picfullname, CFile::modeRead)
   &&file.GetStatus(picfullname, fstatus)
   &&(-1 != (cb = fstatus.m_size)))
  {
   //从堆中分配指定数量字节的一整块,这时系统无法提供零零碎碎的局部或全局的堆   
   HGLOBAL hGlobal = GlobalAlloc(GMEM_MOVEABLE, cb);     
   LPVOID pvData = NULL;
   if(NULL != hGlobal)
   {
    //锁定全局内存对象并返回它的首地址
    if(NULL != (pvData = GlobalLock(hGlobal)))     
    {
     //把文件内容读进全局内存对象的地址空间中
     file.ReadHuge(pvData, cb);
     //GlobalUnlock函数把以GMEM_MOVEABLE方式分配的内存对象的锁定计数器减1
     GlobalUnlock(hGlobal);
     //从全局内存中创建stream对象,第二个参数指定当stream释放时是否自动释放全局内存
     CreateStreamOnHGlobal(hGlobal, TRUE, &pStm);
     //创建一个新的picture对象并用stream对象中的内容初始化   
     if(SUCCEEDED(OleLoadPicture(pStm, fstatus.m_size, TRUE, IID_IPicture, (LPVOID*)&pPic)))
     {
      OLE_XSIZE_HIMETRIC hmWidth;
      OLE_YSIZE_HIMETRIC hmHeight;
      //得到picture对象中图片的宽和高
      pPic->get_Width(&hmWidth);
      pPic->get_Height(&hmHeight);
      
      int nWidth = MulDiv(hmWidth, pDC->GetDeviceCaps(LOGPIXELSX), HIMETRIC_INCH);
      int nHeight = MulDiv(hmHeight, pDC->GetDeviceCaps(LOGPIXELSY), HIMETRIC_INCH);
      pStm->Release();
      pStm = NULL;
      //把图像显示在dc中
      CRect rect;
      GetClientRect(&rect);
      //if(FAILED(pPic->Render(*pDC, 0, 0, (DWORD)nWidth, (DWORD)nHeight, 0, hmHeight, hmWidth, -hmHeight, NULL)))
      if(FAILED(pPic->Render(*pDC, 0, 0, rect.Width(), rect.Height(), 0, hmHeight, hmWidth, -hmHeight, NULL)))
      {
       MessageBox("图片出错!", "提示", MB_ICONINFORMATION);
      }
      pDC->SetBkMode(TRANSPARENT);
      //释放不要的picture对象,并把指针清空
      pPic->Release();
      pPic = NULL;
      //释放不要的全局内存对象,这个千万别忘了(32位程序不需要这行,系统会自动释放;16位程序一定要)
      FreeResource(hGlobal);
     }
     else
     {
      MessageBox("图片出错!", "提示", MB_ICONINFORMATION);
     }
    }
   }
  }
  else
  {
   MessageBox("图片出错!", "提示", MB_ICONINFORMATION);
 }



这代码好像太复杂了吧。。 我的题目意思是:10张JPG格式,或者PNG格式的图片,作为对话框的背景图片,且每隔1秒显示一张。(再次强调:不用BMP格式的图片。)

望高手帮忙啊!感谢! 望CSDN里的高手们帮忙。。



------解决方案--------------------
http://wenku.baidu.com/view/a2b0b48b84868762caaed5c8.html

用这个直接load吧

------解决方案--------------------
用CImage现实jpg文件很容易
动画效果可以吧要绘制的图片放到一个数组里
然后通过始终消息改变数组下标
------解决方案--------------------
探讨

向立天。能不能简单贴个代码啊! 先谢谢你啦!

------解决方案--------------------
就是搞个定时器,不停的贴图刷新!
------解决方案--------------------
也可以用GDI+
------解决方案--------------------
还是老规矩,你把代码发到我mail里面吧

------解决方案--------------------
你没有初始化,我不是回MAIL给你了么?
------解决方案--------------------
你把我给你发的两个文件替换一下就OK了!