SDI视图编程.pptVIP

  1. 1、本文档共30页,可阅读全部内容。
  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文档。上传文档
查看更多
SDI视图编程ppt课件

* 编译运行结果 * Step4: ListView编程。 Step4.1在类中添加图标变量 public: CImageList m_ImageList; Step4.2在OnInitialUpdate中进行初始化 * * * 最后的效果 * Windows 程序设计 于东 2012上,第十周 实验1:窗口静态切分和一档多视编程 (课上实现,写实验报告) 实验2:列表视图和树视图编程 (选做) * 目标: 对MainFrm编程,将主窗口分成左右两部分,在两部分中分别使用不同的视图。 Q1:为什么要在MainFrm中编程?——MainFrm是所有视图的“容器”,改变视图,就在这里编程。 Q2:怎样在一个SDI程序中使用不同的视图?——视图也只是一种对象,通过向程序中添加继承自不同基类的视图类,进而将不同的类非配给切分出来的“容器”,就可以实现上述功能。 * 编程步骤 Step1:建立一个基本SDI程序,以默认的Cview类为基类 Step2:打开MainFrm.h,在protected类型变量m_wndToolBar下面,添加一行:CSplitterWnd m_wndSplitter; Step3:Ctrl+W向程序中添加新的视图类:CW9_1EditView * Step4:向程序中添加一个FormView视图类 4.1Ctrl+R选择插入对话框,选择对话框类型为FormView 4.2修改FormView的ID(可选),默认为IDD_FormView 4.3Ctrl+W向程序中添加新类,如上页所示 4.4选择基类为FormView 4.5选择对应的对话框ID为刚刚添加的FormView的ID OK,准备工作完成! * Step5: Ctrl+W向MainFrm类中添加函数OnCreateClient() * Step6: 在MainFrm.Cpp中#include 刚添加的两个视图类 Step7: 编辑OnCreateClient代码,如下 * 编译效果: * 实例 W9_1 实例: 将实验课W8_4程序修改成SDI程序,采用两个视图,左侧视图为FormView,右侧为ListView,实现相同的功能。 编程步骤: Step1:仿照W9_1建立主程序,建立左右两侧视图。右侧选择ListView作为基类。 Step2:在StdAfx.h中的#include afxdtctl.h下面一行添加#include afxcview.h Step3:在FormView中的控件变量和消息响应函数(W9_2中仅实现姓名、学号),添加一个Add按钮。 * Step4:仿照W8_4,编写窗口切分代码,调整切分宽度 Step5:初始化ListView。由于不再直接可见,需要在初始化ListView的时候完成定制。通常通过添加OnInitUpdate来完成。 * Step5:ListView初始化。 在OnInitUpdate函数中,添加List风格代码,以及表格初始化,代码如下: * 这一段会用即可 Step6:在Doc类中添加保存数据的对象。用到STL中的map数据类型。如下: #include map using namespace std; //添加在stdafx.h中 。。。 // Attributes public: mapCString,CString m_mapNameNumber; //声明一个“映射”,每个元素包含两个对应的项。 * 好,到现在为止,界面准备完成,开始一档多视编程。 思路:在FormView中点击Add后,并不通知ListView,而是将该数据写入Doc类,通过Doc类将数据更新到ListView。 Map的常用操作方法见: /TianFang/archive/2006/12/30/607859.html Step7:FormView的Add按钮编程 * Step8:为ListView添加OnUpdate函数。 * 首先清空当前的列表 使用迭代器依次获取map 中的所有数据,然后显示 在List中 小结: W9_2实现了最简单的两个视图-文档编程,数据流如下: 实际上,当程序中存在多个视图时的情形类似。在进行更新的时候,通常由某个视图发现数据更新,然后调用GetDocument-UpdateAllView,使Doc更新数据,然后该函数会自动调用所有视图的OnUpdate函数。通过UpdateAllView中指定的lHint参数,我们可以辨别哪个视图需要更新。 * 实验1:窗口静态切分和一档多视编程 (课上实现,写实验报告) 实验2:列表视图和树视图编程 (选做) * 列表视图用于以各种形式显示项目,往往是文件信息。 树视图则用于显示结构信

文档评论(0)

xyz118 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档