VC++电子版讲义07.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
文档和视图 教学提示:MFC应用框架的基础是Document/View结构,文档是应用和用户操作的实体,视图实现文档的显示、编辑和打印。CDocument类提供了一个标准文档处理的接口,CView类提供文档的用户界面。 本章将介绍有关文档和视图的基本机制,并结合实例介绍使用CArchive类进行文档的序列化以及切分窗口、多视图的方法和技巧。 教学目标:了解文档和视图的基本结构,掌握使用CArchive类进行文档的序列化以及切分窗口和多视图的方法和技巧。 7.1 文档的序列化 7.1.1 磁盘文件和序列化 MFC提供了一个档案类(CArchive),允许将一个复杂结构的对象保存到字节流,待对象删除后,又可以从字节流中恢复对象。这种保存数据的方法,称为序列化(或串行化)。之所以称为是字节流,是因为序列化除了可以使用文件保存对象以外,还可以通过网络和串口传输对象。 1. 档案类CArchive的常用函数 CArchive类没有基类,提供了基本的保存和读取对象的操作。 2. 文件的读写操作 文件I/O服务是任何操作系统的主要服务,Win32提供了许多与文件相关的API:打开文件、关闭文件、读文件、写文件、搜寻数据等,MFC把这些操作都封装在CFile之中了。 有时如果用户并不想利用文档类提供的Serialize( )函数来进行文件的读写,但仍要使用序列化,这就需要创建并定制一个CArchive对象,注意要先创建一个CFile对象,并且必须保证CArchive对象和CFile对象的打开模式一致。 【例7.1】 编写一个基于对话框的应用程序Li7_1,使用档案类进行序列化。 (1) 使用MFC AppWizard创建一个基于对话框的应用程序Li7_1。 (2) 选择项目工作区的ResourceView,选中IDD_LI7_1_DIALOG,删去TODO文本,添加两个静态文本,并将其标题修改为“测试1”和“测试2”;添加两个编辑框,将其ID修改为IDC_EDIT_TEST1和IDC_EDIT_TEST2;添加两个按钮,将其ID修改为IDC_BUTTON_SAVE和IDC_BUTTON_READ。 (3) 选择View菜单中的ClassWizard菜单项,在Member Variables中,为IDC_EDIT_TEST1添加CString类型的变量m_test1,为IDC_EDIT_TEST2添加CString类型的变量m_test2。 (4) 添加IDC_BUTTON_SAVE的响应函数OnButtonSave,并在其中添加如下代码。 void CLi7_1Dlg::OnButtonSave() { UpdateData(TRUE);//将编辑框中的内容传递给变量 CFile f; f.Open(\\test.txt,CFile::modeCreate|CFile::modeWrite); CArchive ar(f,CArchive::store); arm_test1m_test2; ar.Close(); f.Close();} (5) 添加IDC_BUTTON_READ的响应函数OnButtonRead( ),并在其中添加如下代码。 void CLi7_1Dlg::OnButtonRead() { CFile f; if(f.Open(\\test.txt,CFile::modeRead)==FALSE) return; CArchive ar(f,CArchive::load); arm_test1m_test2; ar.Close(); f.Close(); UpdateData(FALSE);//将变量中的数据传递给编辑框 } (6) 编译、链接,运行Li7_1,并在其中输入test1和test2,单击【保存】,然后清除编辑框,再单击【读取】,运行结果如图7.1所示。 结果分析与讨论:使用档案类实现文件的读写,首先要创建一个文件对象,再创建一个档案类对象,并利用序列化保存到文件,然后再实现从文件中读取内容,要注意两种对象的创建顺序以及状态应该一致。 7.1.2 Document/View框架的主要成员 MFC应用程序主要包括用于封装Win32 API类和封装应用级概念的类,MFC的应用框架类都是CCmdTarget的派生类,其中的核心类有CDocument类、CView类、框架CFrameWnd类、CDocTemplate类和应用CWinApp类。 1. 应用类CWinApp及其功能 CWinApp应用类封装了Windows程序的初始化、运行和退出功能。基于MFC应用框架的程序必须有一个CWinApp派生类对象,该对象在任何窗口创建之前被构造

文档评论(0)

ajgoaw + 关注
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档