在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);}
例如简历上面的图片框大小是固定的。谢谢
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);}
解决方案 »
- vc+mapx 比例尺的问题 高分请教 100分!
- IOCP wsarecv调用等不到完成信息
- 如何得到当前活动窗口关闭消息[急]
- 获取磁盘读写速率出问题。请教高手。谢谢,在线等。
- 关于_beginthreadex与_endthreadex的问题
- 求b-spline或其它三次样条插值代码?
- 同一个dsp里面是否可以用不同的compile option生成不同的目标,比如dll和lib
- ★★★ 再线等------------轻松取分,有关内存分配,请进! ★★★
- 什么叫回卷(CALLBACK)函数,50分相送
- 讨论:我想这样在实现给给.exe文件加密,不知道大家是怎么看的。。。。。。
- 使用COM来编程时得到的那些(BSTR * *)的指针如何释放?
- CString类的两个字符串忽略字符后面的空格进行比较
http://topic.csdn.net/u/20070301/00/4b27d45d-355f-4bd3-939f-e8696ce6c1ab.html?73733
贴来给大家共享,,谢谢大家的支持
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);
}
BitBlt还是和他差不多的那个函数,可以给比例缩放