- void CCMFCDlg::OnBnClickedOk()
- {
- CFileDialog cfd(true,
- _T(".jpg"),
- NULL,
- OFN_FILEMUSTEXIST|OFN_HIDEREADONLY,
- _T("图片文件 (*.jpg;*.bmp;*.png;*.gif)|*.jpg;*.bmp;*.png;*.gif|所有文件 (*.*)|*.*||"),
- this); //选择图片的对话框
- if(cfd.DoModal()!=IDOK) //判断是否获得图片
- {
- return;
- }
- m_path = cfd.GetPathName(); //获得图片路径
- UpdateData(false); //更新路径公共变量
- Show_picture(); //调用显示图片函数
- }
- //显示图片函数
- void CCMFCDlg::Show_picture()
- {
- if(m_path=="") //判断图片路径是否存在
- {
- return;
- }
- CWnd *m_picture = GetDlgItem(IDC_STATIC1);
- CImage image; //使用图片类
- image.Load(m_path); //装载路径下图片信息到图片类
- CRect rect;
- m_picture->GetClientRect(&rect); //获得控件的区域对象
- CDC* pDC = m_picture->GetWindowDC(); //获得显示控件的DC
- image.Draw(pDC->m_hDC, rect); //图片类的图片绘制Draw函数
- ReleaseDC(pDC);
void CCMFCDlg::OnBnClickedOk()
最新推荐文章于 2025-02-11 12:26:55 发布
本文介绍了一个使用C++ MFC实现的图片加载和显示功能。通过调用CFileDialog来选择图片文件,支持.jpg、.bmp、.png 和 .gif格式,并将所选图片显示在静态控件中。代码详细展示了从获取图片路径、更新UI状态到最终调用CImage类完成图片加载及显示的过程。
5496

被折叠的 条评论
为什么被折叠?



