=======================================
添加图片框
再添加一个打开对话框的测试按钮
为图片框关联一个变量,需要先修改图片框的ID
然后在按钮里添加如下代码
void C_001_Dlg::OnBnClickedButtonopendlg()
{
//创建一个对话框
CFileDialog cfopen(true, NULL, L"test.bmp", OFN_READONLY| OFN_OVERWRITEPROMPT, L"img Files (*.bmp;*.jpg)|*.bmp;*.jpg|All Files (*.*)|*.*|");
int i=cfopen.DoModal();
//CFileDialog的构造函数很关键
//参数1 true是打开文件对话框,false是保存文件对话框
//参数2 默认的文件扩展名,为NULL则不指定,这是保存的对话框时候用的,自动为保存的文件夹扩展名
//参数3 在文件名框中显示的初始名称
//参数4 OFN_OVERWRITEPROMPT 保存对话框下如果存在文件则提示是否覆盖,具体看文档
//参数5 过滤的格式是 "名称|实际格式;实际格式2"
//后面的参数可以默认了,几乎用不到
HANDLE hd=0;
if (i==IDOK)
{
CString str;
str = cfopen.GetPathName();
//载入图片到内存,并返回图片的句柄
hd = LoadImage(NULL, str, IMAGE_BITMAP, 0, 0, LR_CREATEDIBSECTION | LR_LOADFROMFILE | LR_DEFAULTSIZE);
//参数1 若加载程序外部资源传NULL,否则一般传AfxGetInstanceHandle()
//参数2 路径
//参数3和4 大小
//参数5 加载的图的类型
//参数6 LR_CREATEDIBSECTION (使该函数返回DIB节位图句柄)
// LR_DEFAULTSIZE 忽略3和4参数,载入实际大小
m_picture_ctl.SetBitmap((HBITMAP)hd);//设置位图
}
DeleteObject((HBITMAP)hd); //释放位图资源,其它资源释放方法请百度
}
上面代码的意思是打开对话框,从对话框中选取图片文件,然后图片文件
返回一个路径,利用这个路径去加载图片,图片返回句柄
然后再利用图片框的设置位图设置这个图片到图片框
vs2013的bug问题解决 添加位图提示Rc108错误
https://blog.csdn.net/zhyh1435589631/article/details/51181324CStatic文档 (图片框的类)
https://msdn.microsoft.com/zh-cn/library/t98kd6f7.aspxCFileDialog文档
https://docs.microsoft.com/zh-
cn/cpp/mfc/reference/cfiledialog-class
CFileDialog的第4个构造函数文档
https://docs.microsoft.com/zh-
cn/windows/desktop/api/commdlg/ns-commdlg-tagofna
LoadImage文档
https://blog.csdn.net/hisinwang/article/details/45752089=