图片控件显示jpg图片的程序

来源:互联网 发布:php多维数组删除key 编辑:程序博客网 时间:2024/06/10 03:58

/*******************控件显示原始图片代码******************/

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();

}

/*******************控件显示原始图片代码******************/


原创粉丝点击