MFC-读取图像-Picture Control控件
在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);
点击运行
选择“读取图片”按钮
随机选择一张图片 打开
便可以显示出来了!
转载请注明出处,欢迎讨论和交流!