关闭

利用VC6.0 MFC 建立基本对话框,设计个按钮,按下就读取一个JPEG图像 按钮的响应函数代码咋写呢?求求

1431人阅读 评论(0) 收藏 举报
双击按钮,在里面加入下面代码:
 CClientDC dc(this);
 // COM 初始化
 ::CoInitialize(NULL);
 HRESULT hr;
 CFile file("c:\\1.jpg", CFile::modeRead | CFile::shareDenyNone);
 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;
 pPicture->get_Width( &nWidth );   // 宽
 pPicture->get_Height( &nHeight ); // 高
  CSize sz( nWidth, nHeight );
  dc.HIMETRICtoDP( &sz );
 pPicture->Render(dc.m_hDC,0,0,sz.cx,sz.cy,0,nHeight,nWidth,-nHeight,NULL);
 if ( pPicture ) pPicture->Release();
 if ( pStream )  pStream->Release(); 
 ::CoUninitialize();


问题:显示完这个图像后,立刻就没有了对话框。。。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:910629次
    • 积分:10641
    • 等级:
    • 排名:第1515名
    • 原创:277篇
    • 转载:57篇
    • 译文:0篇
    • 评论:53条
    最新评论