首页 > 编程语言 > 详细

MFC-读取图像-Picture Control控件

时间:2021-05-23 14:47:18      阅读:50      评论:0      收藏:0      [点我收藏+]

在MFC上创建一个图片控件

技术分享图片

可以根据右下角的控件属性对图片控件的样式进行修改

技术分享图片

修改后的样式有没有好看一些 \(^_^\)

技术分享图片

创建一个按钮控件用于读取图像

技术分享图片

我们将Picture控件的ID

技术分享图片

改为

技术分享图片

下面是代码环节

先在头文件中加入下面三行代码

技术分享图片

其中,下图.h是头文件 .cpp是源文件 .Dialog是GUI的界面
技术分享图片

然后双击按钮控件 加入下面代码

//选择图片
	CFileDialog fileDlg(TRUE, _T("png"), NULL, 0, _T("image Files(*.bmp; *.jpg;*.png)|*.JPG;*.PNG;*.BMP|All Files (*.*) |*.*||"), this);
	fileDlg.DoModal();
	//获取图片路径和图片名称
	strFilePath1 = fileDlg.GetPathName();
	strFileName1 = fileDlg.GetFileName();
	//判断路径不为空
	if (strFilePath1 == _T(""))
	{
		return;
	}
	image.Load(strFilePath1);
	//以下两个矩形主要作用是,获取对话框上面的Picture Control的width和height,
	//并设置到图片矩形rectPicture,根据图片矩形rectPicture对图片进行处理,
	//最后绘制图片到对话框上Picture Control上面
	CRect rectControl; //控件矩形对象
	CRect rectPicture; //图片矩形对象
	int x = image.GetWidth();
	int y = image.GetHeight();
	//Picture Control的ID为IDC_IMAGE
	CWnd* pWnd = GetDlgItem(IDC_STATIC_PIC);
	pWnd->GetClientRect(rectControl);
	CDC* pDc = GetDlgItem(IDC_STATIC_PIC)->GetDC();
	SetStretchBltMode(pDc->m_hDC, STRETCH_HALFTONE);
	rectPicture = CRect(rectControl.TopLeft(), CSize((int)rectControl.Width(), (int)rectControl.Height()));
	((CStatic*)GetDlgItem(IDC_STATIC_PIC))->SetBitmap(NULL);
	//以下两种方法都可绘制图片
	image.Draw(pDc->m_hDC, rectPicture); //将图片绘制到Picture控件表示的矩形区域
	image.Destroy();
	pWnd->ReleaseDC(pDc);

点击运行

技术分享图片

选择“读取图片”按钮

技术分享图片

随机选择一张图片 打开

技术分享图片

便可以显示出来了!

MFC-读取图像-Picture Control控件

原文:https://www.cnblogs.com/jgg54335/p/14799341.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!