在Static上显示JPG图像,怎么使图像大小自适应Static边框
在Static上显示JPG图像,如何使图像大小自适应Static边框?
在Static上显示JPG图像,但图像显示实际大小,有时候图像稍微大点,或小点,,如何使图像大小自适应Static固定边框?
例如简历上面的图片框大小是固定的。谢谢
void CShowJPGDlg::OnButton1()
{
// TODO: Add your control notification handler code here
IStream *m_pStream;
IPicture *m_pPictrue;
OLE_XSIZE_HIMETRIC m_JPGWidth;
OLE_YSIZE_HIMETRIC m_JPGHeight;
HGLOBAL hMem;
CFile file;
if (!file.Open("mydog.jpg",CFile::modeReadWrite))
{
MessageBox("open file failed!");
}
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,(int)(m_JPGWidth/26.45),(int)(m_JPGHeight/26.45),0,m_JPGHeight,m_JPGWidth,-m_JPGHeight,NULL);
}
------解决方案--------------------
借花献佛
http://topic.****.net/u/20070301/00/4b27d45d-355f-4bd3-939f-e8696ce6c1ab.html?73733
------解决方案--------------------
上面的网址介绍的方法里用到的函数放在static控件里的派生类里操作,也就是你先派生一个STATIC控件类,然后再用介绍的两个函数
------解决方案--------------------
http://www.evget.com/zh-CN/Info/catalog/5985.html
------解决方案--------------------
用GDI+方便些
------解决方案--------------------
双缓存
BitBlt还是和他差不多的那个函数,可以给比例缩放
在Static上显示JPG图像,但图像显示实际大小,有时候图像稍微大点,或小点,,如何使图像大小自适应Static固定边框?
例如简历上面的图片框大小是固定的。谢谢
void CShowJPGDlg::OnButton1()
{
// TODO: Add your control notification handler code here
IStream *m_pStream;
IPicture *m_pPictrue;
OLE_XSIZE_HIMETRIC m_JPGWidth;
OLE_YSIZE_HIMETRIC m_JPGHeight;
HGLOBAL hMem;
CFile file;
if (!file.Open("mydog.jpg",CFile::modeReadWrite))
{
MessageBox("open file failed!");
}
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,(int)(m_JPGWidth/26.45),(int)(m_JPGHeight/26.45),0,m_JPGHeight,m_JPGWidth,-m_JPGHeight,NULL);
}
------解决方案--------------------
借花献佛
http://topic.****.net/u/20070301/00/4b27d45d-355f-4bd3-939f-e8696ce6c1ab.html?73733
------解决方案--------------------
上面的网址介绍的方法里用到的函数放在static控件里的派生类里操作,也就是你先派生一个STATIC控件类,然后再用介绍的两个函数
------解决方案--------------------
http://www.evget.com/zh-CN/Info/catalog/5985.html
------解决方案--------------------
用GDI+方便些
------解决方案--------------------
双缓存
BitBlt还是和他差不多的那个函数,可以给比例缩放