- 0
- 0
- 约3.94千字
- 约 29页
- 2017-11-12 发布于广东
- 举报
第2章 文档与视图 2.1 文档与视图结构 文档是存储数据的对象。视图类的作用是与用户进行交互。档类与视图类的关系如下图所示。 2.2 单文档(SDI)应用程序 应用程序使用两种方法显示数据:单文档(SDI)和多文档(MDI)。在单文档界面中,一次只能打开一个文件。 单文档应用程序中,主要的四个类(假如工程名为DocView): l???????? 主框架类:CMainFrame用于管理主程序窗口,从MFC类的CFrameWnd派生。 l???????? 应用类:CDocViewApp负责程序初始化及程序结束前的整理工作,从MFC类的CWinApp派生。 l???????? 文档类:CDocViewDoc负责存放程序数据和在磁盘上读写数据,从MFC类的CDocument派生。 l???????? 视图类:CDocViewView负责数据的显示及处理用户的输入,从MFC类的CView派生。 文档类CDocument中的主要函数: l???????? UpDateAllviews():更新所显示的数据。 l???????? OnNewDocument(): 建立新文档。 l???????? OnOpenDocument():打开文档。 视图类CView中的主要函数: l?????? OnInitialUpdate():对视图对象进行初始化。 l???????OnDraw():窗口重新绘制。 l? GetDocument():调用此函数就可以取得CDocument类的对象指针。 OnUpdate():对文档进行访问。 2.3 多文档应用程序 2.3.1 多文档(MDI)应用程序的基本概念 多文档(MDI)的应用程序具有一个窗口,此窗口可以有多个MDI子窗口,因而对多文档应用程序一次可以打开多个文档。 MDI应用程序由下面几个部分组成: l???????? MDI主框架窗口 l???????? MDI客户端窗口 l???????? MDI子窗口 2.3.2 创建MDI应用程序 在“文件”(File)—“新建”(New) —“工程”(Projects) —MFC AppWizard(exe),在“工程名”(Project name)栏中输入程序名称MDoc,单击“确定”(OK)按钮。在AppWizard的各个步骤中依次进行如下设置:步骤1:选中Multiple documents单选按钮,如图2.3所示。 步骤2:接受系统默认设置。 步骤3:去掉复选框ActiveX Controls,其他设置接受系统默认值。 步骤4:去掉复选框Printing and print preview,其他设置接受系统默认值。 步骤5:接受系统默认设置。 步骤6:接受系统默认设置,单击“完成”(Finish)按钮结束AppWizard的设置。 对生成的应用程序进行编译和运行,执行的结果如下图所示。 当选择“文件”—“新建”命令,将会出现一个名为MDoc2的子窗口对象。通过窗口菜单可以在各个子窗口中进行切换显示,如下图所示。 2.4 文档中数据的处理 会涉及到两个问题: l???????? 如何在窗口中输入文字? l???????? 如何保存输入的数据,使得窗口重画时字符不消失? 下面的例子中,将创建一个简单的SDI应用程序,操作步骤如下: 步骤1:在Visual C++的“文件”菜单栏中选择“新建”菜单命令,弹出“新建”对话框,选中“工程”选项卡。在项目列表中选中MFC AppWizard(exe)选项,在“工程名”编辑框中输入工程的名称,在这里输入SDI,单击OK按钮继续。 步骤2:在AppWizard的各个步骤中,依次进行如下设置。 (1)选择“S单个文档”(Single document)单选按钮,其他设置接受系统默认值。 (2)接受系统默认设置。 (3)去掉复选框“R ActiveX控件”(ActiveX Controls),其他设置接受系统默认值。 (4)去掉复选框“P打印和打印预览”(Printing and print preview),其他设置接受系统默认值。 (5)接受系统默认设置。 (6)接受系统默认设置;最后创建的工程信息,单击“确定”(OK)按钮继续。 步骤3:到此为止,我们已经创建了一个基于MFC类库的应用程序框架。编译、链接此程序,将得到一个空白的窗口,如下图所示,它不能做任何事情。 步骤4:在单文档应用程序中响应键盘输入与显示字符。 (1)在视图类CSDIView中添加数据成员。 在视图类中添加两个成员变量: protected: int m_nLine;//用来记录已输
您可能关注的文档
- Java程序设计课件作者刘德山金百东张建华09_输入输出及文件操作.ppt
- 保险实务课件作者李杰bxsw1212.1章.ppt
- 保险实务课件作者李杰bxsw1212.3章.ppt
- Java程序设计课件作者欧阳江林主编汪志达马荣飞副主编第1章节Java基础.ppt
- Java程序设计课件作者欧阳江林主编汪志达马荣飞副主编第2章节Java面向对象编程基础.ppt
- 保险学(修订版)课件作者张洪涛郑功成著保险学章节5章.ppt
- 保险学(修订版)课件作者张洪涛郑功成著保险学章节6章.ppt
- 保险学(修订版)课件作者张洪涛郑功成著保险学章节7章.ppt
- 保险学(修订版)课件作者张洪涛郑功成著保险学章节8章.ppt
- 保险学(修订版)课件作者张洪涛郑功成著保险学章节9章.ppt
最近下载
- 【西师大版】2025-2026学年一年级数学下册教学工作计划(含进度表).docx VIP
- 2025年春新人教版七年级下册数学全册课件.pptx
- 科级领导干部理论水平任职.doc VIP
- 《连锁零售企业采购实务》项目6 采购绩效评价.pptx VIP
- 1.1我国发展新的历史方位(教案) 初中读本2023版.pdf VIP
- 2025 贵州 中考真题“写作三任务:铭记他人的帮助、帮助别人学会一项技能、独立不是拒绝帮助”审题立意指导与拓展训练-2025年中考语文作文真题解析与导写.docx VIP
- 消毒供应中心提高包装合格率PDCA.pptx VIP
- 《连锁零售企业采购实务》项目5 供应商管理.pptx VIP
- 2025年新版国家基本药物目录公布药品扩至520种.pdf VIP
- 人教版小学一年级(全册)口算练习题大全.pdf VIP
原创力文档

文档评论(0)