请教高手怎么在SDI主界面中显示JPEG图片

legendhui 2004-10-27 09:14:36
我想在SDI程序主界面中显示一张JPEG格式的图片,不知道该怎么做,那位有好的例子,不妨推荐一下或者您指导指导。
...全文
149 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
legendhui 2004-10-27
  • 打赏
  • 举报
回复
大哥,我是新手你说的lpszPathName我在实际工程中引入仪幅图片,应该怎么写路径呢?是直接写他的ID还是写别的呢
Elsie 2004-10-27
  • 打赏
  • 举报
回复
用IPicture即可

/* -------- 在View中定义一个IPicture对象指针 -------- */
IPicture* m_pPic;


/* -------- 需要打开JPEG图片的地方 -------- */
CFile file;
CFileStatus fstatus;
LONG cb;
IStream *pStm;
HGLOBAL hGlobal;
LPVOID pvData;
// 读入图片
// 此处lpszPathName为你打开图片的路径
if (file.Open(lpszPathName, CFile::modeRead)
&& file.GetStatus(lpszPathName, fstatus) && ((cb = fstatus.m_size) != -1))
{
hGlobal = GlobalAlloc(GMEM_MOVEABLE, cb);
pvData = NULL;
if (hGlobal != NULL)
{
if ((pvData = GlobalLock(hGlobal)) != NULL)
{
file.ReadHuge(pvData, cb);
GlobalUnlock(hGlobal);
CreateStreamOnHGlobal(hGlobal, TRUE, &pStm);
OleLoadPicture(pStm, fstatus.m_size, TRUE, IID_IPicture,
(LPVOID*)&m_pPic);
}
}
file.Close();
}


/* -------- View中显示JPEG图片(OnDraw中) -------- */
......
OLE_XSIZE_HIMETRIC hmWidth;
OLE_YSIZE_HIMETRIC hmHeight;
m_pPic->get_Width(&hmWidth);
m_pPic->get_Height(&hmHeight);
m_pPic->Render(pDC->m_hDC, 左上角横坐标, 左上角纵坐标, 显示宽度, 显示高度,
0, hmHeight, hmWidth, -hmHeight, NULL);
......



其中hmWidth和hmHeight是HIMETRIC下的图片实际尺寸,在不同映射方式下的显示宽度、高度等需要你自己算一下。详见MSDN中对IPicture的注释。
lixiaosan 2004-10-27
  • 打赏
  • 举报
回复
http://www.vccode.com/file_show.php?id=2253
zhangnanonnet 2004-10-27
  • 打赏
  • 举报
回复
使用IPicture 在www.codeproject.com 上有例子
醉马不肖 2004-10-27
  • 打赏
  • 举报
回复
GDI+

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧