首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

MFC怎么从外部导入图片

2012-01-08 
MFC如何从外部导入图片不用加入资源的`我想连到外部的图片`例如同一目录下的ren/bg.jpg将这张图显示为背景

MFC如何从外部导入图片
不用加入资源的`我想连到外部的图片`例如同一目录下的ren/bg.jpg
将这张图显示为背景`怎么做`代码看看

[解决办法]

C/C++ code
BOOL CMyListView::ShowJpg(CDC* pDC,CString strPath, int x, int y){     IStream *pStm;       CFileStatus fstatus;       CFile file;       LONG cb;      //打开文件并检测文件的有效性    if (file.Open(strPath,CFile::modeRead)&&         file.GetStatus(strPath,fstatus)&&          ((cb = fstatus.m_size) != -1))       {          HGLOBAL hGlobal = GlobalAlloc(GMEM_MOVEABLE, cb);          LPVOID pvData = NULL;          if (hGlobal != NULL)           {              pvData = GlobalLock(hGlobal);            if (pvData != NULL)               {                  file.ReadHuge(pvData, cb);  //6.0中可能是用这个函数                 //file.Read(pvData, cb);  //VC2005.NET中用这个函数                GlobalUnlock(hGlobal);                  CreateStreamOnHGlobal(hGlobal, TRUE, &pStm);               }          }      }    else     {        return false;     } //打开文件结束    IPicture *pPic;     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,x,y,(DWORD)fX,(DWORD)fY,0,hmHeight,hmWidth,-hmHeight,NULL)))           {             pPic->Release();             pStm->Release();             return false;         }         pPic->Release();                   pStm->Release();     }      else       {        return false;       }    return true;} 

热点排行