如果要把jpg文件显示,可以找些jpg文件的读例程,
如果把jpg文件编译进exe,用自定义资源吧,好象只有那样才行

解决方案 »

  1.   

    Reply to teecaa :
    可以说详细点吗?
      

  2.   

    可以在OnPaint里自己画。需要事先从资源或文件载入图象
      

  3.   

    可以在OnPaint里自己画。需要事先从资源或文件载入图象
      

  4.   

    如果是bmp格式的我会用onpaint画,可是如果是jpg格式该怎么办呢?
      

  5.   

    有没有搞错,oleloadpicture必须是bmp,wmf,ico这三种文件才可,另外,ijg提供的jpg读取函数要求指定一个FILE*为数据源。
      

  6.   

    转贴一篇文章,给大家看看:发信人: black (千里孤客), 信区: CLanguage 
    标 题: 在VC中显示JPEG和GIF图像 
    发信站: 网易 BBS (Mon Oct 4 22:33:48 1999), 转信 以下文章来自水木清华 发信人: telnet (小飞象), 信区: VisualC 
    标 题: 不要怀疑了,JDK是对的 
    发信站: BBS 水木清华站 (Sun Oct 3 14:07:23 1999) 中午吃饭时试了一下,成功了。 
    我看了MSDN也以为只对BMP有用,结果是对JPG GIF都可以。 
    向不轻信MS的JDK致敬! 
    //admire JDK 
    以下是实验代码,大家可以在95下试试,我在98+IE5上成功。 
    是一个CView的例子,别忘了AfxOleInit 
    另,时间短,写得很乱,,大家自行改进吧! 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!"); 



    else 
    AfxMessageBox("Can't Open Image File!");