MFC - Picture Control 控件显示图片
1 VS2015 新建一个对话框工程,如图拖入三个控件,将 Picture Control 控件,修改属性 ID 为 IDC_IMAGE ,将 Edit Control 控件,修改属性 ID 为 IDC_EDIT_FILEPATH。

2 双击 Button 按钮,函数中实现。
//浏览
void CBase64DemoDlg::OnBnClickedButtonBrowser()
{// TODO: Add your control notification handler code here//选择图片CFileDialog fileDlg(TRUE, _T("png"), NULL, 0, _T("image Files(*.bmp; *.jpg;*.png)|*.JPG;*.PNG;*.BMP|All Files (*.*) |*.*||"), this);//打开文件选择窗体 //如果点击“取消”按钮,直接退出if (fileDlg.DoModal() == IDCANCEL) return; //获取图片路径(包含名称) //既有路径又有文件名,如D:/lena.jpgCString strFilePath = fileDlg.GetPathName();SetDlgItemText(IDC_EDIT_FILEPATH, strFilePath);//只获取文件名,如lena.jpg//CString strFileName = fileDlg.GetFileName();//判断路径不为空if (strFilePath == _T("")){return;}//使用CImage的Load、Draw函数显示图像CImage image;image.Load(strFilePath);//学习下CImage的属性,无其他意义//int x = image.GetWidth(); //int y = image.GetHeight();//获取控件的矩形CRect rectControl; //控件矩形对象//Picture Control的ID为IDC_IMAGECWnd *pWnd = GetDlgItem(IDC_IMAGE); pWnd->GetClientRect(&rectControl);//以控件为画布,在其上画图CDC *pDc = GetDlgItem(IDC_IMAGE)->GetDC();//绘图前必须调用此函数(设置缩放模式),否则失真严重SetStretchBltMode(pDc->m_hDC, STRETCH_HALFTONE);//画图(以下两种方法都可) //将图片绘制到Picture控件表示的矩形区域image.StretchBlt(pDc->m_hDC, rectControl, SRCCOPY);//image.Draw(pDc->m_hDC, rectControl); image.Destroy();pWnd->ReleaseDC(pDc);
}
3 编译运行,点击浏览按钮,找到准备好的图片,选中,运行效果。

参考:
MFC在Picture控件上显示图像、保存图像
https://www.cnblogs.com/xixixing/p/12678709.html
