- 1、本文档共95页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
vc6.0电子版第9章
第9章 单文档应用程序 9.1 建立应用程序框架 9.2 类的设计 9.3 文档序列化 9.4 增加画线功能 9.5 加深对文档/视图结构的理解 9.6 小结 习题 程序单文档(SDI)是Visual C++中第二类重要的应用程序。通常,它有一个文档类和一个视图类。本章首先创建一个单文档的应用程序,在此基础上,对文档/视图结构作出进一步阐述。 在下面创建的单文档应用程序中,将实现两个方面的功能: 一是能够进行直线和圆的绘制; 二是能够保存绘制的图形。因此,要涉及到设备上下文类以及序列化的知识。 9.1 建立应用程序框架 请按以下步骤,利用AppWizard逐步创建程序的框架结构。 创建一个新的MFC AppWizard(exe)项目,命名为“exgraph”。 (1) 程序类别选择基于Single document,语言选择“中文”,单击Next按钮。 (2) 保持默认值,单击Next按钮。 (3) 取消选中的Activex controls,其他保持默认值,单击Next按钮。 (4) 保持默认值,单击Advanced按钮,在弹出的对话框中,设置应用程序所读写的文档的扩展名为.gph,关闭该对话框,单击Next按钮,进入下一步。 (5) 保持默认值,单击Next按钮。 (6) 保持默认值,单击Finish按钮,应用程序的框架将会自动生成。 图9.1显示了AppWizard为应用程序自动生成的所有类以及所创建的应用程序的特性。 图9.1 程序Exgraph的主要信息框 可以看出,AppWizard为应用程序共生成了4个类: CExgraphApp类,由CWinApp派生,负责接受所有的事件消息,并将这些消息传递给由CFrameView派生的类和由 Cview派生的类。 CMainFrame类,由CFrameView派生,它包含菜单、工具条、滚动条等可视对象。 CExgraphDoc类,由CDocument派生,它用来存储文档,在这个类中创建数据结构,利用这些数据结构来构成文档的数据; 该类将要显示的信息传递给由CView派生的类,同时从由CView派生的类中接受输入的信息。 CExgraphView类,由CView派生,该类用来从由CDocument派生的类接受信息并向用户显示,同时用户的输入信息通过它向由CDocument派生的类传递。 将它们与第2章中所创建的应用程序实例作比较,容易发现两个应用程序所生成的类是完全一致的。请结合第2章所讲的类的组织部分,初步分析一下,该如何实现在前面所说明的该应用程序的那些功能。 9.2 类的设计 由于本应用程序要具有文件存储的能力,需要对CExgraphDoc类的数据结构进行组织,使得文档类能够妥善保存。 程序绘制的对象是一个圆,一个圆是由圆心和半径惟一确定,这是一种比较简单而又易于操作的方法。当然,还会有许多其他确定圆的方法,比如,平面上不公线的三点惟一确定一个圆,这种数据结构在恢复圆时会遇到困难。 例9.1 创建一个圆类——CCircle。 在项目工作区视图中选择ClassView选项卡,右击exgraph classes 并在弹出菜单中选择New Class,弹出如图9.2所示的对话框。 图9.2 创建一个新类 展开Class type所对应的组合框,有三种选择,即MFC Class、Generic Class和Form Class。选择哪一种类型,取决于实际需要和类的用途。如果建立一个基于现有MFC类的可重复使用的类,例如能够过滤数字的编辑框类,这时应该选择MFC Class; 如果创建一个不从MFC类继承的类,例如现在要创建的圆类,但它们往往需要从其他类派生,可以选择Generic Class; 如果创建新的窗体风格的窗口,可以选择Form Class,Form Class是特殊类型的MFC类,它可以是对话框类、窗体视图类或数据库视图类。譬如,想建立一个数据库应用程序时,就很可能需要创建这种类型的类。 本例中,选中Generic Class,在Class information框架中的Name对应的文本框中输入CCircle,可以单击Change按钮来修改File name,在Base class[es]中,将CObject设为其父类,继承方式设为public。设置好这些项目之后,单击OK按钮,有一个消息框弹出,提示在应用程序中手工加入头文件。本例选择的基类是不可访问的CObject类,其正确的头文件已经被包含在工程中了,可以忽略该警告信息。如果是其他情况,可以通过手工加入包含相应的头文件的语句。 下面为新生成的类添加成员变量以及用作初始化的构造函数。方法如下: 右击CCirlcle类,在快
您可能关注的文档
最近下载
- 高职“岗、课、赛、证、训、创”六位一体人才培养模式研究——以人工智能应用技术专业为例.pdf
- 永辉超市营运资金管理存在的问题及对策分析_20250126_225505.docx VIP
- 第四章 多彩的光之凸透镜专题(课件)中考物理一轮复习(沪科版).pptx VIP
- 经皮内镜下胃(空肠)造口术临床应用中国专家共识(2024版).docx VIP
- 机械制图 全套课件.ppt
- 民航旅客服务从业人员劳动竞赛试题库400题(供参考).docx
- 《TM-261A、461A使用说明书》.pdf
- 工业园物业服务工业园安全秩序管理方案.doc
- 2024年计量专业实务与案例分析二级参考答案.docx
- 《学前教育法》知识考试题库100题(含答案).docx
文档评论(0)