请教高手怎么在SDI主界面中显示JPEG图片 我想在SDI程序主界面中显示一张JPEG格式的图片,不知道该怎么做,那位有好的例子,不妨推荐一下或者您指导指导。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 使用IPicture 在www.codeproject.com 上有例子 http://www.vccode.com/file_show.php?id=2253 用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的注释。 大哥,我是新手你说的lpszPathName我在实际工程中引入仪幅图片,应该怎么写路径呢?是直接写他的ID还是写别的呢 Mfc 线程问题 如何将视图里的内容存为bmp图片格式,(据说CFileDialog能实现,但不会用) 怎么做另一个软件的插件啊 求界面编程的书籍 在线程中更新CStatusBar显示出现异常 如何让程序响应菜单项对应的函数 一个很简单的傻瓜问题 问个很弱的问题,关于对话框的,急!! 有个关于"图形放大保真"的代码看不懂,大家帮忙一下,很COOL啊. 我想去实达铭泰干怎么样? 如何判断输入的一个十六进制数是负数? 我现在要实现进程间的通讯,帮看下方案...
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的注释。