为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

MFC读显图像

2010-02-01 6页 pdf 100KB 20阅读

用户头像

is_195624

暂无简介

举报
MFC读显图像 mfc图像:读显图像文件程序(MFC) 疯狂代码 http://CrazyCoder.cn/ ĵ:http:/CrazyCoder.cn/VC/Article13581.html 功能:实现打开文件过滤、创建滚动视图类、对小图使子窗口按适应图大小、对大图支持子窗口滚动 另存为功能方便图片格式转换 下面是步骤: VC2005 创建MFC应用->多文档项目Image 在“MFC应用向导”最后步“生成类”页将C*View基类从缺省C...
MFC读显图像
mfc图像:读显图像文件程序(MFC) 疯狂代码 http://CrazyCoder.cn/ ĵ:http:/CrazyCoder.cn/VC/Article13581.html 功能:实现打开文件过滤、创建滚动视图类、对小图使子窗口按适应图大小、对大图支持子窗口滚动 另存为功能方便图片格式转换 下面是步骤: VC2005 创建MFC应用->多文档项目Image 在“MFC应用向导”最后步“生成类”页将C*View基类从缺省CView改成CScrollView ImageDoc.h 添加 # // 用到CImage类 文档类添加img对象 CImage img; 在CImageDoc::Serialize添加下面代码,装入图像文件 (!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 启动应用则返回 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来设置滚动范围和参数 OnInitialUpdate添加如下代码 CImageDoc* pDoc = GetDocument; // 对滚动视图类必须设置滚动尺寸 (pDoc->img.IsNull) SetScrollSizes(MM_TEXT, CSize(100, 100));[Page] { m_iWidth = pDoc->img.GetWidth; m_iHeight = pDoc->img.GetHeight; RECT crect; GetClientRect(&crect); SetScrollSizes( MM_TEXT, CSize(m_iWidth, m_iHeight), CSize(crect.right, 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变量 (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::OnFileOpen { wchar_t filters = L\"图像文件(*.bmp;*.g;*.jpg;*.png;*.t)|*.bmp;*.g;*.jpg;\\ *.png;*.t|位图文件 (*.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::OnFileSaveAs { CImageDoc* pDoc = GetDocument; wchar_t filters = L\"(*.bmp)|*.bmp|(*.g)|*.g|\\ (*.jpg)|*.jpg|(*.png)|*.png|\\ (*.t)|*.t|所有文件(*.*)|*.*||\"; CFileDialog fileDlg(TRUE, L\"jpg\", L\"zhuzhu.jpg\", OFN_HIDEREADONLY, filters); (fileDlg.DoModal IDOK) pDoc->img.Save(fileDlg.GetPathName); // 保存到文件 } 2009-2-12 5:07:46 疯狂代码 http://CrazyCoder.cn/
/
本文档为【MFC读显图像】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索