MFC单文档应用程序显示缩放图像CImage
1 利用VS2010向导创建一个MFC单文档应用程序;
2在CMFCTestView.h中引用,并创建一个CImage对象;
#include
private:
CImage image;
3打开资源文件,选中Menu下面的IDR_MAINFRAME,添加一个新的菜单项“打开图像”,修改其ID为IDM_OPEN,再点击鼠标右键,添加事件处理程序,在弹出的对话框的列表中选择CMFCTestView;
【MFC单文档应用程序显示缩放图像CImage】4添加事件处理函数OnOpen;
void CMFCTestView::OnOpen()
{
// TODO: 在此添加命令处理程序代码
CFileDialog dlg(TRUE, _T(".bmp"), _T("*.bmp"), OFN_HIDEREADONLY |
OFN_OVERWRITEPROMPT, _T("位图文件(*.bmp)|*.bmp|JPEG文件(*.jpg)|*.jpg||"));
if(dlg.DoModal() == IDOK)
{
if(!image.IsNull())
{
image.Destroy();
}
image.Load(dlg.GetPathName());
Invalidate();
}
}
5在MFCTestView中加入图像显示的代码;
void CtestshowImgView::OnDraw(CDC* pDC/*pDC*/)
{
CtestshowImgDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
// TODO: 在此处为本机数据添加绘制代码
if(!m_image.IsNull())
{
CRect rectClient;
GetClientRect(rectClient);
CBrush br(0xFFFFFF);
每次显示前先将原来的界面刷新成白色(255,255,255)
pDC->FillRect(rectClient, &br);
//获取图片的宽、高
int nWidthOrigin = m_image.GetWidth();
int nHeightOrigin = m_image.GetHeight();
//定义拉伸后图片的宽、高
int nWidthStrectch= nWidthOrigin*1;
int nHeightStrectch = nHeightOrigin*1.5;
m_image.StretchBlt(pDC->m_hDC, 0, 0, nWidthStrectch, nHeightStrectch, 0, 0, nWidthOrigin, nHeightOrigin,SRCCOPY);
}
}
效果如下:
文章图片
参考:https://blog.csdn.net/foreverling/article/details/40083431
https://blog.csdn.net/Teddygogogo/article/details/98106721
推荐阅读
- 科学养胃,别被忽悠,其实真的很简单
- opencv|opencv C++模板匹配的简单实现
- 单点登陆
- 松软可口易消化,无需烤箱超简单,新手麻麻也能轻松成功~
- 友情的开始
- 【读书清单20】写作吧!你值得被看见(2)
- 你单身多久了()
- 简单心理2019春A期+32+张荣
- 以太坊中的计量单位及相互转换
- 如果你是单眼皮妹子,这支眼线笔你得收了。