怎么样才能显示jpg和gif图片?

解决方案 »

  1.   

    这个应该可以:
    void CPICView::OnDraw(CDC* pDC) 

    CPICDoc* pDoc = GetDocument(); 
    ASSERT_VALID(pDoc); 
    IPicture *pPic; 
    IStream *pStm; CFileStatus fstatus; 
    CFile file; 
    LONG cb; if (file.Open("c:/test.jpg",CFile::modeRead)&&file.GetStatus("c:/test.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->Ge 
    tDeviceCaps(HORZSIZE)*100.0); 
    fY = (double)pDC->GetDeviceCaps(VERTRES)*(double)hmHeight/((double)pDC->G 
    etDeviceCaps(VERTSIZE)*100.0); 
    if(FAILED(pPic->Render(*pDC,0,0,(DWORD)fX,(DWORD)fY,0,hmHeight,hmWidth,-h 
    mHeight,NULL))) 
    AfxMessageBox("Failed To Render The picture!"); 
    pPic->Release(); 

    else 
    AfxMessageBox("Error Loading Picture From Stream!");