文档详情

加入JPG图片1陈.doc

发布:2017-08-19约8.76千字共14页下载文档
文本预览下载声明
加入JPG图片1陈 ///////////////////////////////////////////////////////////////////////////// // CIm4View drawing void CIm4View::OnDraw(CDC* pDC) { ::CoInitialize(NULL); // COM 初始化 HRESULT hr; CFile file; file.Open( D:\\aa.jpg , CFile::modeRead | CFile::shareDenyNone ); // 读入文件内容 文件路径D:\\aa.jpg DWORD dwSize = file.GetLength(); HGLOBAL hMem = ::GlobalAlloc( GMEM_MOVEABLE, dwSize ); LPVOID lpBuf = ::GlobalLock( hMem ); file.ReadHuge( lpBuf, dwSize ); file.Close(); ::GlobalUnlock( hMem ); IStream * pStream = NULL; IPicture * pPicture = NULL; // 由 HGLOBAL 得到 IStream,参数 TRUE 表示释放 IStream 的同时,释放内存 hr = ::CreateStreamOnHGlobal( hMem, TRUE, pStream ); ASSERT ( SUCCEEDED(hr) ); hr = ::OleLoadPicture( pStream, dwSize, TRUE, IID_IPicture, ( LPVOID * )pPicture ); ASSERT(hr==S_OK); long nWidth,nHeight; // 宽高,MM_HIMETRIC 模式,单位是0.01毫米 pPicture-get_Width( nWidth ); // 宽 pPicture-get_Height( nHeight ); // 高 /* ////////原大显示////// CSize sz( nWidth, nHeight ); pDC-HIMETRICtoDP( sz ); // 转换 MM_HIMETRIC 模式单位为 MM_TEXT 像素单位 pPicture-Render(pDC-m_hDC,0,0,sz.cx,sz.cy,0,nHeight,nWidth,-nHeight,NULL); */ ////////按窗口尺寸显示//////// CRect rect; GetClientRect(rect); pPicture-Render(pDC-m_hDC,0,0,rect.Width(),rect.Height(),0,nHeight,nWidth,-nHeight,NULL); if ( pPicture ) pPicture-Release();// 释放 IPicture 指针 if ( pStream ) pStream-Release(); // 释放 IStream 指针,同时释放了 hMem ::CoUninitialize(); } 关于IPicture::Render函数 1、IPicture::Render简介 HRESULT Render( HDC hdc, //Handle of device context on which to render the image long x, //Horizontal position of image in hdc long y, //Vertical position of image in hdc long cx, //Horizontal dimension of destination rectangle long cy, //Vertical dimension of destination rectangle OLE_XPOS_HIMETRIC xSrc, //Horizontal offset in source picture OLE_YPOS_HIMETRIC ySrc, //Vertical offset in source picture OLE_XSIZE_HIMETRIC cxSrc, //Amount to copy horizontally in source picture OLE_YSIZE_HIMETRIC c
显示全部
相似文档