void Cpes2010Dlg::ShowJpg(CString strPath, CDC *pDC)
{
IPicture *pPic;
LPVOID pvData;
IStream *pStm;
CFile file;
DWORD filelen;
file.Open(strPath,CFile::modeRead);
filelen=file.GetLength();
HGLOBAL hGlobal=GlobalAlloc(GMEM_MOVEABLE,filelen);
if(hGlobal!=NULL)
{
if((pvData=GlobalLock(hGlobal))!=NULL)
{
file.Read(pvData,filelen);
GlobalUnlock(hGlobal);
CreateStreamOnHGlobal(hGlobal,TRUE,&pStm);
}
}
OleLoadPicture(pStm,filelen,TRUE,IID_IPicture,(LPVOID*)&pPic);
long iwidth;
long iheight;
pPic->get_Width(&iwidth);
pPic->get_Height(&iheight);
CSize size(iwidth,iheight);
pDC->HIMETRICtoDP(&size);
pPic->Render(*pDC,0,0,size.cx,size.cy,0,iheight,iwidth,-iheight,NULL);
CSize sizeTotal;
pStm->Release();
pPic->Release();
}
这是我的代码,图片到是显示出来了,但是大小不统一,怎样才能缩放到统一大小啊?
还有,关于重画问题,小图片覆盖大图片,大图会有残留,这个有怎样解决啊?求帮助!!!
解决方案 »
- 求助各位大大!如何用C++输入角标??
- Socket在send数据时,有时会出现堵塞的情况如何处理?
- 用C#的同学们,帮个忙
- vista,64位环境下build出来的64位的COM组件无法注册
- 如何改变readonly类型的编辑框字体颜色!
- 怎样在Unicode编码下输出Ansi字符串?
- 【请问】C++的类和C里面的struct有什么区别? 比较标准的答案是什么?
- 如何向IE中插入一段文本?
- std::vector 和 std:list 有什么区别吗?
- vc6.0中使用ADO和DATAGRID需要哪些dll?
- (跪求)如何指定程序的窗口句柄
- 急急急,IHTMLElement::get_children函数怎么用
pPic->get_Width(&iwidth);
pPic->get_Height(&iheight);贴图的时候不要根据图片大小来设置就是了 自己指定设置一个
=======================================================
FreeLaxy, your backup.
=======================================================
============
这里面不是有弃置宽高的参数吗?改成一样的不就行了。
CRect rect;
GetClientRect(&rect);
pPicture->Render(pDC->m_hDC,0,0,rect.Width(),rect.Height(),
0,nHeight,nWidth,-nHeight,NULL);