- 1、本文档共76页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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
您可能关注的文档
最近下载
- 第五单元森林里的故事除法的初步认识单元整体设计 青岛六三制数学二上大单元教学.pptx
- 公路养护工职业技能竞赛理论考试题及答案.doc VIP
- 全屋定制销售培训及话术技巧(各流程接触点话术).pdf VIP
- 2024年高考真题和模拟题生物分类汇编(全国通用)专题05 光合作用与细胞呼吸(解析版).docx VIP
- DnD_5E_人物卡_可填充版_汉化版.pdf
- 2024版《安全生产法》考试题库附答案(共90题).docx
- 全屋定制销售培训及话术技巧.doc VIP
- 山东省标:L13S2 给水工程.docx
- 购物广场商场超市消防安全知识培训PPT.pptx VIP
- 建筑企业财税规划.pptx VIP
文档评论(0)