关于在MFC的picture控件里显示图片
来源:互联网 发布:淘宝账户怎么登录 编辑:程序博客网 时间:2024/06/06 14:24
准备工作:
1、先对主窗口(例设为CtextDlg)类添加一个用于打开文件的bool类型的函数Openfile,包含参数如下:
CString& fileName //
UINT nIDSTitle //
DWORD dwFlags //
bool bOpenFileDialog //
int* pType //
2、在主窗口添加picture控件和button控件,并将其ID改为ID_SHOWPIC和IDC_BUTTON_OPEN,并在主窗口的类向导里对ID_SHOWPIC添加变量,类型为CStatic,成员m_ShowPicture,确定。
3、由于要使用到CImage类,需要添加头文件atlimage.h,CImage的强大之处在于可以对图片进行修改,再进行保存。
代码部分:
1、打开文件的代码:
bool CtextDlg::OpenFile(CString& fileName, UINT nIDSTitle, DWORD dwFlags, bool bOpenFileDialog, int* pType){ CFileDialog dlgFile(bOpenFileDialog); CString title; if (bOpenFileDialog) title = _T("Open file"); else title = _T("Save file"); dlgFile.m_ofn.Flags |= dwFlags; int nDocType = (pType != NULL) ? *pType : 0; int nIndex = 0; dlgFile.m_ofn.nFilterIndex = nIndex +1; CString strDefExt = _T("pal"); dlgFile.m_ofn.lpstrDefExt = strDefExt;//打开文件的类型 CString strFilter = _T("*.jpg"); strFilter += (TCHAR)NULL; strFilter += _T("*.jpg"); strFilter += (TCHAR)NULL; strFilter += _T("*.*"); strFilter += (TCHAR)NULL; strFilter += _T("*.*"); strFilter += (TCHAR)NULL; strFilter += _T("*.bmp"); strFilter += (TCHAR)NULL; strFilter += _T("*.bmp"); strFilter += (TCHAR)NULL; dlgFile.m_ofn.lpstrFilter = strFilter; dlgFile.m_ofn.lpstrTitle = title; dlgFile.m_ofn.lpstrFile = fileName.GetBuffer(_MAX_PATH); BOOL bRet = (dlgFile.DoModal() == IDOK) ? TRUE : FALSE; fileName.ReleaseBuffer(); if (bRet){ if (pType != NULL){ int nIndex = (int)dlgFile.m_ofn.nFilterIndex - 1; ASSERT(nIndex >= 0); } } return bRet;}
2、之后就是对按钮的操作来打开并显示图片,双击按钮控件编辑:
void CtextDlg::OnBnClickedButtonOpen(){ // TODO: 在此添加控件通知处理程序代码 CString filename; if (!OpenFile(filename, AFX_IDS_OPENFILE, OFN_HIDEREADONLY | OFN_FILEMUSTEXIST, TRUE, NULL)) return; // open cancelled//在picture控件内显示图片,这里用到了CImage类 CDC*pDC =m_ShowPicture.GetWindowDC();//创造设备环境 CImage m_img;//由于使用到了CImage类,要添加头文件atlimage.h m_img.Load(filename);//加载文件路径 RECT rc; m_ShowPicture.GetClientRect(&rc); int rcWidth = rc.right - rc.left; int rcHeight = rc.bottom - rc.top; pDC->SetStretchBltMode(STRETCH_HALFTONE); //避免失真 m_img.Draw(pDC->m_hDC,0,0,rcWidth,rcHeight);//“画图” ReleaseDC(pDC);//释放设备环境 }
0 0
- 关于在MFC的picture控件里显示图片
- [ MFC ] 对话框动态控件的创建 在Picture Control控件上显示图片 [大三TJB_708]
- 在mfc中picture控件中显示Mat图片
- MFC 二进制方式读取图片然后显示在对话框的PICTURE控件上
- MFC picture控件中显示图片
- MFC picture控件显示图片(新手)
- opencv mfc 显示图片到picture控件
- mfc picture控件显示png图片
- 【mfc】二维数组在picture控件显示
- 【C++ MFC+opencv】打开文件夹中的图片并在picture控件中显示
- MFC利用halcon以及cimage在picture control控件上面显示图片
- MFC 基于对话框的图片控件(picture)动态加载.bmp图片并显示
- opencv2.2 MFC picture控件中显示图片
- MFC picture控件显示动态/静态BMP图片
- MFC中 利用OpenCv显示图片到Picture Control控件
- MFC picture control控件不失真自适应图片显示
- MFC picture control控件不失真自适应图片显示
- MFC 对话框中的picture control 控件显示图片
- 查询优化(一) @2012-06-02
- [BZOJ1861][Zjoi2006]Book 书架
- libgdx API之viewport:再也不用担心画面适配
- 关注程序员健康,刻不容缓
- Graphics主要方法
- 关于在MFC的picture控件里显示图片
- DOM_专有扩展
- 使用Hadoop的mapReduce实现计算单词数
- HDOJ1166 敌兵布阵(线段树)
- 修改PC密码.bat
- CS231n CNN for Visual Recognition Module (3) backpropagation
- JVM虚拟机垃圾回收机制
- UI017---UITableView的入门
- App开始引导界面