首页 > 代码库 > MFC 在Picture控件中显示图像(JPG)
MFC 在Picture控件中显示图像(JPG)
首先选择图片:
void Chbgk_picDlg::OnBnClickedButton1(){CFileDialog cfd(true,_T(".jpg"),NULL,OFN_FILEMUSTEXIST|OFN_HIDEREADONLY,_T("Executable Files (*.jpg)|*.jpg|All Files (*.*)|*.*||"),this); //选项图片的约定if(cfd.DoModal()!=IDOK) //判断是否获得图片{ return;}m_path = cfd.GetPathName(); //获得图片路径UpdateData(false); //更新路径公共变量Show_picture(); //调用显示图片函数}//显示图片函数void Chbgk_picDlg::Show_picture(){if(m_path=="") //判断图片路径是否存在{ return;}//AfxMessageBox(_T("读取到图片路径"));CRect rect;m_picture.GetClientRect(&rect); //m_picture为Picture Control控件变量,获得控件的区域对象CImage image; //使用图片类image.Load(m_path); //装载路径下图片信息到图片类CDC* pDC = m_picture.GetWindowDC(); //获得显示控件的DCimage.Draw( pDC -> m_hDC,rect); //图片类的图片绘制Draw函数ReleaseDC(pDC);}
通过上面两步的实现可以显示出jpg图片信息在Picture Control控件中,但是当窗口被最小化或者被其他应用程序覆盖后,这个时候图片不能显示,那么就需要对Picture Control中图片进行重绘,通过获得WM_PAINT消息进行处理,对响应OnPaint()函数进行处理:
void Chbgk_picDlg::OnPaint(){ if (IsIconic()){ ..............}else{ CDialog::OnPaint(); //重绘对话框 CDialog::UpdateWindow(); //更新windows窗口,如果无这步调用,图片显示还会出现问题 Show_picture(); //重绘图片函数}}
需要注意的是首先绘制对话框,完成后更新窗口信息,然后进行绘制控件中图片区域。
到这里基本上一个图片选择显示的应用程序已经出来了,细节问题再细节处理。
转载自:http://hi.baidu.com/1235453434/item/7c6d1d9afec5c9dc1f4271ab
MFC 在Picture控件中显示图像(JPG)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。