面向对象程序设计第11章.pptVIP

  1. 1、本文档共76页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

第11章单文档与多文档清华大学计算机与信息管理中心---黄维通

(4)为CMySdiDoc类添加成员变量

在MySdiDoc.h类的定义中public下面增加如下的代码:

CStringm_age;

CStringm_name;

CStringm_sex;

CStringm_str;

在类CMySdiDoc的定义中包括多个public块。事实上,可以把这些定义都放到同一个public块中,在定义中包括多个public块只是为了区别开不同用途的公有成员。这只是为了便于程序的阅读和维护,对于编译器而言,将公有成员的定义放到哪一个public块中其结果都是一样的,对于私有成员和保护成员也是一样。(5)文档变量初始化

打开MySdiDoc.cpp文件,在OnNewDocument()成员函数中加入以下代码:

BOOLCMySdiDoc::OnNewDocument()

{if(!CDocument::OnNewDocument())returnFALSE;

//TODO:addreinitializationcodehere

//(SDIdocumentswillreusethisdocument)

m_str=可以点击编辑下拉菜单下的显示学生信息,重新显示学生信息;

m_age=;

m_name=;

m_sex=;

returnTRUE;

}

该代码为公有成员m_str赋初值“可以点击编辑下拉菜单下的显示学生信息,重新显示学生信息”,其它几个变量用来存放相关信息。(6)视图的输出

在CMySdiView类的OnDraw()成员函数中加入代码如下:

voidCMySdiView::OnDraw(CDC*pDC)

{

CMySdiDoc*pDoc=GetDocument();

ASSERT_VALID(pDoc);

//TODO:adddrawcodefornativedatahere

CStringstr=pDoc-m_str; //从文档类中读取数据

pDC-TextOut(5,10,str);

CStringstr1=pDoc-m_name++pDoc-m_age++pDoc-m_sex;

//从档类中读取数据

pDC-TextOut(100,50,str1);

}

首先调用GetDocument()得到文档类的指针,将文档对象成员变量复制到字符串str和str1中,再调用TextOut()函数将字符串str和str1中的内容显示到用户区中。(7)在CMySdiDoc类中为菜单项ID_EDIT_SHOW添加处理函数OnEditShow(),并添加代码如下:

voidCMySdiDoc::OnEditShow()

{//TODO:Addyourcommandhandlercodehere

CDlgInputinputDlg;//创建一个CInputDlg类的对象

if(inputDlg.DoModal()==IDOK) //显示对话框

{ m_str=;

m_age=inputDlg.m_Age;//获取输入的字符串

m_name=inputDlg.m_Name;

if(inputDlg.m_Sex==0)m_sex=男;

elsem_sex=女;

UpdateAllViews(NULL); //更新视图

}}

首先创建了一个CInputDlg类对象inputDlg,调用对话框类的成员函数DoModal()显示该对话框,当用户单击确定按钮时,将用户输入的信息保存到文档对象的成员变量中,最后调用文档类成员函数UpdateAllView()刷新视图。(8)为了在CMySdiDoc类中定义对话框类CDlgInput对象,还必须在MySdiDoc.cpp文件中包含CDlgInput类的头文件DlgInput.h,代码如下:

#includeDlgInput.h//加入头文件

(9)文档串行化

为了把用户的修改保存到磁盘文件中并在需要时可以打开所保存的磁盘文件读取文档,需要重载CMySdiDoc类的Serialize()函数来完成串行化。在Serialize()函数中添加代码如下:

voidCMySdiDoc::Serialize(CArchivear)

{if(ar.IsStoring())

{//TODO:addstoringcodehere

arm_age;

ar

文档评论(0)

趁早学习 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档