/*******************控件显示原始图片代码******************/
CWnd*pWnd=GetDlgItem(IDC_YSPICTRUE);//获得pictrue控件窗口的句柄
CRectrect;
pWnd->GetClientRect(&rect);//获得pictrue控件所在的举行区域
CDC*pDC=pWnd->GetDC();//获得pictrue控件的DC
IStream*pStm=NULL;
CFileStatusfstatus;
CFilefile;
LONGcb;
IPicture*pPic;//定义显示图片的接口(可显示jpg格式图片)
CStringm_sPath="1.jpg";//设置想要显示的图片
//打开图象文件,获取文件字节数
if(file.Open(m_sPath,CFile::modeRead)&& file.GetStatus(m_sPath,fstatus)
&&((cb=fstatus.m_size)!=-1))
{
//分配全局存储空间
HGLOBALhGlobal=GlobalAlloc(GMEM_MOVEABLE,cb);
LPVOID pvData=NULL;
if(hGlobal!=NULL)
{
//锁定分配内存块
if((pvData=GlobalLock(hGlobal))!=NULL)
{
//读入文件到内存缓冲区
//file.ReadHuge(pvData,cb);
file.Read(pvData,cb);
GlobalUnlock(hGlobal);
CreateStreamOnHGlobal(hGlobal,true,&pStm);
}
}
}
//装载图象文件
if(SUCCEEDED(OleLoadPicture(pStm,fstatus.m_size,TRUE,IID_IPicture,(LPVOID*)&pPic)))
{
OLE_XSIZE_HIMETRIChmWidth;
OLE_XSIZE_HIMETRIChmHeight;
pPic->get_Width(&hmWidth);//获得图象真实宽度
pPic->get_Height(&hmHeight);//获得图象真实高度
//在控件上显示图片
pPic->Render(*pDC,0,0,rect.Width(),rect.Height(),0,hmHeight,hmWidth,-hmHeight,NULL);
pPic->Release();
}
/*******************控件显示原始图片代码******************/
本文详细介绍了如何使用C++在控件中显示原始图片的步骤,包括打开图片文件、获取图片信息并渲染到控件上。
1620

被折叠的 条评论
为什么被折叠?



