- 1、本文档共29页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第2章文档与视图
第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;//用来记录已输
文档评论(0)