在Static上显示JPG图像,如何使图像大小自适应Static边框

void CJpgDlg::OnButton1() 
{
        IStream *m_pStream;
        IPicture *m_pPictrue;
        OLE_XSIZE_HIMETRIC m_JPGWidth;
        OLE_YSIZE_HIMETRIC m_JPGHeight;
        HGLOBAL hMem;
        CFile file;
        if (!file.Open("c:\\a0.bmp",CFile::modeReadWrite))
        {
                MessageBox("open file failed!");
                return;
        }
        
        DWORD len=file.GetLength();         //这边改成内存图片数据的长度
        hMem=GlobalAlloc(GMEM_MOVEABLE,len);
        LPVOID pData=NULL;
        pData=GlobalLock(hMem);
        file.ReadHuge(pData,len);           //把这里的从文件读数据,改成从内存读数据
        file.Close();        
        
        GlobalUnlock(hMem);
        CreateStreamOnHGlobal(hMem,TRUE,&m_pStream);
        OleLoadPicture(m_pStream,len,TRUE,IID_IPicture,(LPVOID*)&m_pPictrue);
        m_pPictrue->get_Height(&m_JPGHeight);
        m_pPictrue->get_Width(&m_JPGWidth);
        CRect lpRec; 
        GetDlgItem(IDC_STATIC1)->GetWindowRect(&lpRec); 
        ScreenToClient(&lpRec);
        m_pPictrue->Render(GetDC()->m_hDC,lpRec.left,lpRec.top,lpRec.Width(),lpRec.Height(),0,m_JPGHeight,m_JPGWidth,-m_JPGHeight,NULL);	
}
原文地址:http://bbs.csdn.net/topics/380267452
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值