[Microsoft Visual Studio 2010]基于MFC对话框打开图片并显示在矩形框图上
本文章由学校老师指导下编写,是基于MFC对话框的简单程序应用,希望能够给刚接触MFC的同学提供一点参考,使用编译软件为Microsoft Visual Studio 2010。如果由于学校机房的vs2010版本过旧无法执行程序代码,可以参考我的另一篇博客。
正文:
首先,运行VS2010新建一个项目工程,在Visual C++下选择MFC应用程序,输入工程名称以及保存地址点击确定。
在MFC程序向导中选择基于对话框,直接点击下一步或者完成。
建立好工程后可以先编译下空工程。确定无误后,开始下一步。
选择工具箱在对话框中添加一个矩形图片框,两个按钮。
对矩形图片框进行ID配置,将矩形框1的ID配置为ORGIMAGE。修改按钮的caption。
右键内部矩形框添加变量,变量名为IMAGE1。
再右键外部大矩形框添加两个CString类型的变量,名字为strFilePath,strFileName。右键点击类向导查看成员变量可以检查是否成功添加变量。
之后双击按钮1添加如下代码
CFileDialog fileDlg(TRUE, _T("png"), NULL, 0, _T("image Files(*.bmp; *.jpg;*.png)|*.JPG;*.PNG;*.BMP|All Files (*.*) |*.*|"), this);
fileDlg.DoModal();
strFilePath=fileDlg.GetPathName(); //文件路径
strFileName = fileDlg.GetFileName(); //文件名
if (strFilePath == _T(""))
{
return;
}
CImage image;
image.Load(strFilePath);
CRect rectControl; //控件矩形对象
IMAGE1.GetClientRect(rectControl);
CDC *pDc = IMAGE1.GetDC(); //设备上下文对象的类
rectControl = CRect(rectControl.TopLeft(), CSize((int)rectControl.Width(), (int)rectControl.Height()));
IMAGE1.SetBitmap(NULL); //清空picture
image.Draw(pDc->m_hDC, rectControl); //将图片绘制到Picture控件表示的矩形区域
image.Destroy();
IMAGE1.ReleaseDC(pDc);
无报错按F5编译并执行即可。
最终效果:
参考博客:https://blog.csdn.net/qq_37907622/article/details/83410667