77范文网 - 专业文章范例文档资料分享平台

VC 数字图像处理实验(VC 单文档)(5)

来源:网络收集 时间:2019-04-01 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

}

}

UpdateAllViews(NULL);

点击菜单“组建——组建”,再次组建整个程序,排除组建过程中出现的错误。

***此时运行程序,图像数据可以读入,但是无法显示图像。

第五节 实现图像显示

1. 定义显示控制变量

在DIPJQView.h文件中添加两个显示控制变量。 public: CDIPJQDoc* GetDocument(); int m_ShowMode; int m_ShowScale;

在DIPJQView.cpp文件中定义两个显示模式枚举常量,在构造函数中给显示控制参数赋初值。

enum {SHOWMODE_SCALE, SHOWMODE_FIT}; CDIPJQView::CDIPJQView() { // TODO: add construction code here m_ShowMode = SHOWMODE_FIT; m_ShowScale = 100; }

2. 图像显示代码

在CDIPJQView类的OnDraw()函数中添加图像显示代码。

void CDIPJQView::OnDraw(CDC* pDC) { CDIPJQDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native data here CRect rect; if( m_ShowMode == SHOWMODE_FIT ) { GetClientRect(&rect); m_ShowScale = pDoc->m_pCurImage->FitBlt(pDC->m_hDC,0,0,rect.Width(), rect.Height(),0,0,pDoc->m_pCurImage->m_Width, pDoc->m_pCurImage->m_Height); } else { CSize size; size = GetTotalSize(); GetClientRect(&rect); int x0=0,y0=0; if( rect.Width()>size.cx ) x0 = (rect.Width()-size.cx)/2; if( rect.Height()>size.cy )

y0 = (rect.Height()-size.cy)/2; if( m_ShowScale==100 ) pDoc->m_pCurImage->BitBlt(pDC->m_hDC,x0,y0,pDoc->m_pCurImage->m_Width, pDoc->m_pCurImage->m_Height,0,0); else pDoc->m_pCurImage->StretchBlt(pDC->m_hDC,x0,y0,size.cx,size.cy, 0,0,pDoc->m_pCurImage->m_Width,pDoc->m_pCurImage->m_Height); } }

3. 图像区域设置代码

在CDIPJQView类的OnInitialUpdate()函数中添加视图滚动区域设置代码。

void CDIPJQView::OnInitialUpdate() { CScrollView::OnInitialUpdate(); CDIPJQDoc* pDoc = GetDocument(); CSize sizeTotal; // TODO: calculate the total size of this view if( pDoc->m_pCurImage->IsValid() ) { if( m_ShowMode==SHOWMODE_FIT ) { CRect rect; this->GetClientRect(&rect); sizeTotal.cx = rect.Width(); sizeTotal.cy = rect.Height(); } else { sizeTotal.cx = (int)(pDoc->m_pCurImage->m_Width*m_ShowScale/100.0+0.5); sizeTotal.cy = (int)(pDoc->m_pCurImage->m_Height*m_ShowScale/100.0+0.5); } // ((CMainFrame*)AfxGetApp()->m_pMainWnd)->ShowScale(m_ShowScale); } else { sizeTotal.cx = sizeTotal.cy = 100; }

}

SetScrollSizes(MM_TEXT, sizeTotal);

4. 修整程序菜单

切换到“ResourceView”选项页,展开“DIPJQ resources”,展开“Menu”,双击“IDR_MAINFRAME”,对菜单进行编辑。在各顶层菜单下保留如下菜单项,其余删除。

文件:打开,保存,另存为,最近文件,退出 编辑:撤消 查看:工具栏,状态栏 帮助:关于

5. 添加显示操作菜单

点击顶层菜单“查看”,双击下部空白菜单项,打开“菜单项目 属性”对话框,在ID下拉列表框中输入“ID_SHOW_ENLARGE”,在标明编辑框中输入“放大”,在提示编辑框中输入“放大显示图象\\n放大”。关闭对话框,将该菜单项拖至最上部。

继续依次建立如下三个菜单项:

ID ID_SHOW_REDUCE ID_SHOW_ORIGINAL ID_SHOW_FIT 标明 缩小 原始尺寸 适合窗口 提示 缩小显示图象\\n缩小 按原始尺寸显示图象\\n原始尺寸 使图象完整显示在窗口中\\n适合窗口

点击顶层菜单“查看”,双击下部空白菜单项,在“菜单项目 属性”对话框中,选中“分隔符”,关闭对话框,将分隔符拖至“工具栏”菜单项之上,“适合窗口”之下。

6. 编辑工具栏

切换到“ResourceView”选项页,展开“DIPJQ resources”,展开“Toolbar”,双击“IDR_MAINFRAME”,对工具栏进行编辑。

保留打开、保存、关于三个按钮,删除其它按钮。

添加“撤消”按钮:点中最后的空白按钮,绘制撤消图形,双击该按钮,将ID设为“ID_EDIT_UNDO”,将按钮拖至保存按钮之后。

再依次添加如下四个按钮:

放大——ID_SHOW_ENLARGE 缩小——ID_SHOW_REDUCE

原始尺寸——ID_SHOW_ORIGINAL 适合屏幕——ID_SHOW_FIT 工具栏中个按钮的形状如下:

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库VC 数字图像处理实验(VC 单文档)(5)在线全文阅读。

VC 数字图像处理实验(VC 单文档)(5).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/560939.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: