在VC中如果实现GIF的播放? 
void   CImageView::OnDraw(CDC*   pDC)   
  {   
          CImageDoc*   pDoc   =   GetDocument();   
          ASSERT_VALID(pDoc);   
          //   TODO:   add   draw   code   for   native   data   here   
          IPicture   *pPic;     
          IStream   *pStm;     
            
          CFileStatus   fstatus;     
          CFile   file;     
          LONG   cb;     
            
          if   (file.Open("c:/a.jpg",CFile::modeRead)   
                  &&file.GetStatus("c:/a.jpg",   fstatus)   
                  &&((cb   =   fstatus.m_size)   !=   -1))     
          {     
                  HGLOBAL   hGlobal   =   GlobalAlloc(GMEM_MOVEABLE,   cb);     
                  LPVOID   pvData   =   NULL;     
                  if   (hGlobal   !=   NULL)     
                  {     
                          if   ((pvData   =   GlobalLock(hGlobal))   !=   NULL)     
                          {     
                                  file.ReadHuge(pvData,   cb);     
                                  GlobalUnlock(hGlobal);     
                                  CreateStreamOnHGlobal(hGlobal,   TRUE,   &pStm);     
                                    
                                  if(SUCCEEDED(::OleLoadPicture(pStm,fstatus.m_size,TRUE,IID_IPicture,(LPVOID*   )&pPic)))     
                                  {     
                                          OLE_XSIZE_HIMETRIC   hmWidth;     
                                          OLE_YSIZE_HIMETRIC   hmHeight;     
                                            
                                          pPic->get_Width(&hmWidth);     
                                          pPic->get_Height(&hmHeight);     
                                            
                                          double   fX,fY;     
                                          fX   =   (double)pDC->GetDeviceCaps(HORZRES)*(double)hmWidth/((double)pDC->GetDeviceCaps(HORZSIZE)*100.0);     
                                          fY   =   (double)pDC->GetDeviceCaps(VERTRES)*(double)hmHeight/((double)pDC->GetDeviceCaps(VERTSIZE)*100.0);     
                                          if(FAILED(pPic->Render(*pDC,0,0,(DWORD)fX,(DWORD)fY,0,hmHeight,hmWidth,-hmHeight,NULL)))     
                                                  AfxMessageBox("Failed   To   Render   The   picture!");     
                                          pPic->Release();     
                                  }     
                                  else     
                                          AfxMessageBox("Error   Loading   Picture   From   Stream!");     
                          }     
                  }     
          }     
          else     
                  AfxMessageBox("Can't   Open   Image   File!");     
    
  }   
正文
转在VC中如果实现GIF的播放?2008-02-20 15:47:00
【评论】 【打印】 【字体:大 中 小】 本文链接:http://blog.pfan.cn/sword2008/32796.html
阅读(7620) | 评论(0)
版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论