读显图像文件程序_第1页
读显图像文件程序_第2页
读显图像文件程序_第3页
读显图像文件程序_第4页
读显图像文件程序_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、mfc图像:读显图像文件程序(MFC)疯狂代码 /:/VC/Article13581.html功能:实现打开文件过滤、创建滚动视图类、对小图使子窗口按适应图大小、对大图支持子窗口滚动另存为功能方便图片格式转换下面是步骤:VC2005 创建MFC应用多文档项目Image在“MFC应用向导”最后步“生成类”页将C*View基类从缺省CView改成CScrollViewImageDoc.h 添加# / 用到CImage类文档类添加img对象CImage img;在CImageDoc:Serialize添加下面

2、代码,装入图像文件(!img.IsNull) img.Destroy;HRESULT hr = img.Load(ar.GetFile-GetFilePath);ASSERT(SUCCEEDED(hr);为了MDI在开始运行时不自动创建个新文档及其对应子窗口可在应用类C*AppInitInstance语句/ 分析标准外壳命令、DDE、打开文件操作命令行CCommandLineInfo cmdInfo;ParseCommandLine(cmdInfo);和/ 调度在命令行中指定命令如果/ 用 /RegServer、/Register、/Unregserver 或 /Unregister 启动应用

3、则返回 FALSE(!ProcessShellCommand(cmdInfo)FALSE;的间加上语句:/ 不让在启动时创建子框架窗口cmdInfo.m_nShellCommand = CCommandLineInfo:FileNothing;视图类添加m_iWidth , m_iHeight; / 图像宽度, 高度bool m_bInit;视图类OnDraw 添加如下代码(!pDoc-img.IsNull)pDoc-img.BitBlt(pDC-m_hDC, 0, 0); / 显示图像在OnInitialUpdate中或其他需要地方CScrollView类成员SetScrollSizes来设

4、置滚动范围和参数OnInitialUpdate添加如下代码CImageDoc* pDoc = GetDocument;/ 对滚动视图类必须设置滚动尺寸(pDoc-img.IsNull) SetScrollSizes(MM_TEXT, CSize(100, 100);Pagem_iWidth = pDoc-img.GetWidth; m_iHeight = pDoc-img.GetHeight;RECT crect;GetClientRect(&crect);SetScrollSizes( MM_TEXT, CSize(m_iWidth, m_iHeight), CSize(crect.righ

5、t, crect.bottom), CSize(10, 10);ResizeParentToFit( ); / 按SetScrollSizes参数sizeTotal来自动调整其窗口大小m_bInit = true;在用户改变窗口大小时调整滚动页面和行大小添加OnSize消息响应 加入代码:/ TODO: 在此处添加消息处理代码CImageDoc* pDoc = GetDocument;ASSERT_VALID(pDoc);(!pDoc-img.IsNull)/ 创建视图类时会先OnSize后再OnInitialUpdate/ 所以w和h值只能在化完成后才能使用, 所以定义了m_bInit变量(

6、m_bInit) SetScrollSizes(MM_TEXT, CSize(m_iWidth, m_iHeight), CSize(cx, cy), CSize(10, 10);添加文件过滤器Image.cpp 注释掉原来ID_FILE_OPEN消息响应 /ON_COMMAND(ID_FILE_OPEN, &CWinApp:OnFileOpen)添加自己ID_FILE_OPEN消息响应void CImageApp:OnFileOpenwchar_t filters = L图像文件(*.bmp;*.g;*.jpg;*.png;*.t)|*.bmp;*.g;*.jpg; *.png;*.t|位图

7、文件(*.bmp)|*.bmp|图形交换格式文件(*.g)|*.g|联合图象专家组 JPEG文件(*.jpg)|*.jpg|可移植网络图形文件(*.png)|*.png|标记图像文件格式TIFF 文件(*.t)|*.t|所有文件(*.*)|*.*|;CFileDialog fileDlg(TRUE, NULL, NULL, OFN_HIDEREADONLY, filters);Page(fileDlg.DoModal IDOK) OpenDocumentFile(fileDlg.GetPathName);在视图类添加另存为(ID_FILE_SAVE_AS)消息响应void CImageView:OnFileSaveAsCImageDoc* pDoc = GetDocument;wchar_t filters = L(*.bmp)|*.bmp|(*.g)|*.g|(*.jpg)|*.jpg|(*.png)|*.png|(*.t)|*.t|所有文件(*.*)|*.*|;CFileDialog fileDlg(TRUE, Ljpg, Lzhuzhu.jpg, OFN_HIDEREADONLY,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论