返回信息流我用以下的代码实现一个jpg图像的显示,但是没有运行成功,出现了
//////////////////////////////////////////////////
program:XXXX.exe
file:winocc.cpp
line:345
for information on how your program can cause an assertion
failure,see the visual c++ documentation on asserts.
/////////////////////////////////////////////////////////////
错误!。。。。
源程序如下:
CFileDialog m_dlg(TRUE,"JPG",NULL,NULL,"JPG(*.jpg)|*JPG|gif|*.gif,this");
if(m_dlg.DoModal()==IDOK)
{
CString m_filename=m_dlg.GetPathName();
CWnd m_dir;
m_dir.SetWindowText(m_filename);
CFile m_file(m_filename,CFile::modeRead);
//获取文件长度
DWORD m_filelen=m_file.GetLength();
//在堆上分配内存空间
HGLOBAL m_hglobal=GlobalAlloc(GMEM_MOVEABLE,m_filelen);
LPVOID pvdata=NULL;
//锁定堆空间,获取指向堆空间的指针、
pvdata=GlobalLock(m_hglobal);
//将文件数据读取到堆中
m_file.ReadHuge(pvdata,m_filelen);
IStream* m_stream;
GlobalUnlock(m_hglobal);
//在堆中创建流对象
CreateStreamOnHGlobal(m_hglobal,TRUE,&m_stream);
//利用流加载图像
IPicture* m_picture;
OleLoadPicture(m_stream,m_filelen,TRUE,IID_IPicture,(LPVOID*)&m_picture);
// OLE_XSIZE_HIMETRIC m_width;//图片的真实宽度
// OLE_YSIZE_HIMETRIC m_height;//图片的真实高度
long m_width;
long m_height;
m_picture->get_Width(&m_width);
m_picture->get_Height(&m_height);
CDC* dc=GetDC();
// m_IsShow=TRUE;
CRect rect;
GetClientRect(rect);
SetScrollRange(SB_VERT,0,(int)(m_height/26.45)-rect.Height());
SetScrollRange(SB_HORZ,0,(int)(m_width/26.45)-rect.Width());
m_picture->Render(*dc,1,50,(int)(m_width/26.45),(int)(m_height/26.45),
0,m_height,m_width,-m_height,NULL);
// m_picture->Release();
}
看了半天不知道怎么解决,希望高手可以解决一下!Help!!!!!!
这是一条镜像帖。来源:北邮人论坛 / cpp / #6503同步于 2008/5/9
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
【求救】请达人帮忙解答难题呀!关于MFC的。
lesslie
2008/5/9镜像同步3 回复
订阅后,新回复会通过你的通知中心匿名送达。