在VC++上显示图片的具体思路是将jpeg、bmp文件加载到堆中,然后在堆中创建一个数据流,接着调用OleLoadPicture函数加载流中的数据到IPicture中,最后调用IPicture接口的Reader方法输出图像信息。
一、 具体操作如下:
1. 创建单文档MFC应用程序,工程名为ShowJPEG.
2. 向视图类中添加成员变量。
IStream* m_pStream; //定义流对象
IPicture* m_pPicture; //定义接口对象
OLE_XSIZE_HIMETRIC m_JPGWidth; //图像宽度
OLE_YSIZE_HIMETRIC m_JPGHeight; //图像高度
HGLOBAL hMem; //堆句柄
3. 在视图类的构造函数中从磁盘中加载图像到流中。
CShowJPEGView::CShowJPEGView()
{
// TODO: add construction code here
CFile file; //定义文件对象
file.Open("psb.jpg",CFile::modeReadWrite); //打开文件
DWORD len=file.GetLength(); //获取文件长度
hMem=GlobalAlloc(GMEM_MOVEABLE,len); //在堆中分配内存
LPVOID pData=NULL; //定义一个指针对象
pData=GlobalL