



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第十五章 多文档界面的程序 上一章我们介绍了单文档的程序,它只能打开一个文档进行编辑,要编辑或查看另一文档,当前文档就被关闭了。多文档的应用程序象WORD,VC+本身等,都可以同时打开多个文档进行操作。本章介绍创建多文档程序的基本方法。本章要点1 创建一个多文档的应用程序2 字符串表和修改文件对话框的过滤3 创建和修改工具条15.1 MCircle程序的界面和功能 我们先来建立一个多文档应用程序MCircle,它的功能和上一章的Circle程序一样,按一下鼠标就画一个圆。只是它可以打开多个文档,也可以把同一个文档打开多次。创建工程 打开应用程序向导,在d:myVCCH15创建应用程序MCircle。选择“多文档”,注意选择“工具条和状态栏支持”,最后一步视图基类选择CView。程序运行时的界面如图chap15-01所示。图chap15-01 图中打开了两个文档,MCircle2 是当前文档,所以在主窗口的标题这形式了“ MCircle -MCircle2”。每个子窗口的大小都可以改变,菜单条中有一个“窗口”菜单,可以对多个窗口进行排列和选择。文件菜单中有打印功能,那是在创建工程时用户自己选的。还可以保存4-10个“最近打开的”文档,这也是在在创建工程时由用户自己选定。当鼠标停留在菜单项或工具图标上时,右下角的状态栏会显示它们的功能说明。在打开文件时,对话框中的文件类型会显示(*.Cir),这是我们要设置的。15.2 编写代码 为了画圆,需要在文档和视图类中引进表示圆心和半径的变量 m_PosX、m_PosY和m_Reduse,在他们的构造函数中定义,在OnInitialUpdate()中初始化。在OnDraw()函数中画圆,添加鼠标点击消息并加入画圆的代码。各代码清单如下:1)在MCircleView.h文件的构造函数中/ Implementationpublic: int m_PosX; int m_PosY; int m_Reduse; virtual CMCircleView();2)void CMCircleView:OnInitialUpdate() CView:OnInitialUpdate(); / TODO: Add your specialized code here and/or call the base class CMCircleDoc *pDoc = GetDocument(); m_PosX = pDoc-m_PosX; m_PosY = pDoc-m_PosY; m_Reduse = pDoc-m_Reduse;3)void CMCircleView:OnDraw(CDC* pDC) CMCircleDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); / TODO: add draw code for native data here RECT rect; rect.left = m_PosX - m_Reduse ; rect.top = m_PosY - m_Reduse ; rect.right = m_PosX + m_Reduse ; rect.bottom= m_PosY + m_Reduse ; pDC-Ellipse(&rect);4)void CMCircleView:OnLButtonDown(UINT nFlags, CPoint point) / TODO: Add your message handler code here and/or call default m_PosX = point.x; m_PosY = point.y; Invalidate(); CMCircleDoc *pDoc = GetDocument(); pDoc-m_PosX = m_PosX; pDoc-m_PosY = m_PosY; pDoc-m_Reduse = m_Reduse ; pDoc-SetModifiedFlag(TRUE); / my code END CView:OnLButtonDown(nFlags, point);保存、编译和运行,就可以看到如图01所示的程序了。15.3 字符串表的修改打开工作区的resource页的String Table,就可以看到字符串表String Table,双击它打开一个字符串表如下图chap15-02所示:图chap15-02 其中储存着程序程序中使用到的字符串。例如图中高亮显示的行是“文件/打开”菜单的ID,字符串的值为“打开一个现有文件n打开”,前一半是当鼠标停留在“文件/打开”菜单项或对应的工具图标上时在状态栏中显示的提示信息,后一半是在鼠标箭头下的弹初出信息,中间用n分隔。第二行是IDR_MCIRCLTYPE,其值为129,字符串=“MCircle 程序nMCirclenMCirclenCIR Files*.Cir)n.cirnMCircle.DocumentnMCircle Document”,它包括应用程序窗口显示的标题,打开文件对话框时的缺省扩展名等7个子字符串。1)MCircle 程序 应用程序主窗口标题2)nMCircle 子窗口的文件名3)nMCircle4)nCIR Files*.Cir) “另存为”文件对话框的缺省扩展名5)n.cir “打开”文件对话框的缺省扩展名6)nMCircle.Document7)nMCircle Document按上面的内容修改后编译和运行,再创建新文件看看。在保存文件和打开文件时,就会过滤掉其他文件,只显示*.Cir文件。图chap15-0315.4 工具条的修改编辑图01中工具条是向导自己创建的标准工具条,打开工作区的资源页,展开ToolBar,就可以看到ID为IDR_MAINFRAMED的工具条。双击它,就会打开一个图标编辑器,可以让用户编辑和修改工具条。如图chap10-04所示图chap10-04 如图形工具和颜色工具窗口没有打开,可以用右键点用户区的底部,选择你所需要的窗口打开它。现在我们来增加一个颜色工具,设计为如下的33正方形。保存后我们还需要条加一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工业管道的运行与维护培训
- 工作中的信息安全管理与保护策略
- 工业节能电机系统的优化与改造
- 工业风建筑装饰设计案例分享
- 工作效率提升的智能穿戴设备探讨
- 工作与生活平衡的时间管理策略
- 工作流程优化与管理效能提升培训课程类题目
- 工程师培训课程中的统计过程控制
- 工程物理学的发展方向探讨
- 工程项目中的物资采购与财务审计
- GB/T 23932-2009建筑用金属面绝热夹芯板
- 北京开放大学工具书与文献检索形成性考核1答案-答案
- 初中地理会考试卷
- 清华大学抬头信纸
- Unit 2 Lesson 1 Money vs Success 课件 高中英语新北师大版性选择必修第一册(2022-2023学年)
- 天津大学年《仪器分析实验》期末试题及答案
- 特种设备风险分级管控清单(叉车)
- 《创新创业实践》课程思政教学案例(一等奖)
- 项目激励管理制度
- 核酸的降解与核苷酸代谢课件
- T∕CGMA 033001-2018 压缩空气站能效分级指南
评论
0/150
提交评论