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

双击按钮,在里面加入下面代码:
 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();


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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值