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

VC6.0中运用ciamge类显示JPG图片

2012-10-20 
VC6.0中使用ciamge类显示JPG图片想在VC.6.0的MFC搭建的dialog窗体上显示jpg图片,开始用picture控件,都说会

VC6.0中使用ciamge类显示JPG图片
想在VC.6.0的MFC搭建的dialog窗体上显示jpg图片,开始用picture控件,都说会很复杂,推荐用cimage类,可是发现这个在vc6.0里面没有。

所以现在是求傻瓜式的操作步骤,要用到的文件能传给我或者给我网址我自己去下(不是我懒,网上找了很多都没有),工程要怎么设置,也能说清楚点。

效果实现立马结账,拜谢!! 



[解决办法]

C/C++ code
BOOL 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);     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 jpgWidth;     OLE_YSIZE_HIMETRIC jpgHeight;     pPic->get_Width(&jpgWidth);     pPic->get_Height(&jpgHeight);     double fX,fY;     fX = (double)pDC->GetDeviceCaps(HORZRES)*(double)jpgWidth/((double)pDC->GetDeviceCaps(HORZSIZE)*100.0);     fY = (double)pDC->GetDeviceCaps(VERTRES)*(double)jpgHeight/((double)pDC->GetDeviceCaps(VERTSIZE)*100.0);  CRect rect;  GetClientRect(&rect);if (fX<rect.Width() && fY<rect.Height()){pPic->Render(*pDC,0,0,(DWORD)fX,(DWORD)fY,0,jpgHeight,jpgWidth,-jpgHeight,NULL);}else  {pPic->Render(*pDC,x,y,rect.Width(),rect.Height(),0,jpgHeight,jpgWidth,-jpgHeight,NULL);}  }     return true;}
[解决办法]
探讨
我求方便实现的

[解决办法]
C/C++ code
CDC *pDC = GetDC();ShowJpg(pDC,"1.jpg",0,0);ReleaseDC(pDC); 

热点排行