我现在在视图里利用IPicture能显示图片,但是要在对话框里使命找不到法子!
好多实例是在视图里显示就是没有在对话框显示。希望大家一起来学习。
例如:
http://www.codeguru.com/bitmap/index.shtml
http://www.csdn.net/develop/read_article.asp?id=10632
我认为比较好的都是在视图里显示
向第二个贴子有在对话框里显示,就是不太明白这么实现的?

解决方案 »

  1.   

    我这个是再对话框里实现的 我的对话框有一个图形框 先调用图形文件 我再程序里读取图形框的大小 然后再固定的范围显示 你看看 我有例子 如果你要可以给你 
    [email protected]
    IPicture *pPic; 
    IStream *pStm; 
    CFileStatus fstatus; 
    CFile file; 
    LONG cb; 
    CRect r_Show;
    HDC hdc;

    m_Show.GetClientRect(r_Show);
    int xpos=r_Show.left;
    int ypos=r_Show.top;
    int Widthpos=r_Show.Width();
    int heightpos=r_Show.Height(); 
    if (file.Open(m_PhotoPath,CFile::modeRead)&&file.GetStatus(m_PhotoPath,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))) 
    double fX,fY; 
    fX = r_Show.Width();
    fY = r_Show.Height();
    hdc=::GetDC(m_Show.m_hWnd); 
    if(FAILED(pPic->Render(hdc,xpos,ypos,(DWORD)fX,(DWORD)fY,0,hmHeight,hmWidth,-hmHeight,NULL))) 
    AfxMessageBox("Failed To Render The picture!"); 
    // pPic->Release(); 

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


    GlobalFree(hGlobal);

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

  2.   

    谢谢mfkzj()我刚刚在同类贴子搜索到你,好巧 
    [email protected]
      

  3.   

    你把那个HANDLE duploicate出来就是DC了。有DC还不还不好解决?
      

  4.   

    kimryo(里百八式 八酒杯) 
    你能不能再详细点, mfkzj() 方式还可以,我想多了解几种方式?
    分数我还可以在加啊!
      

  5.   

    kimryo(里百八式 八酒杯) 老兄,我实在很笨!别那么含蓄好吗?