VisualC面向对象与可视化程序设计第16章

VisualC面向对象与可视化程序设计第16章

ID:41097544

大小:1.93 MB

页数:31页

时间:2019-08-16

VisualC面向对象与可视化程序设计第16章_第1页
VisualC面向对象与可视化程序设计第16章_第2页
VisualC面向对象与可视化程序设计第16章_第3页
VisualC面向对象与可视化程序设计第16章_第4页
VisualC面向对象与可视化程序设计第16章_第5页
资源描述:

《VisualC面向对象与可视化程序设计第16章》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第16章单文档与多文档VC的MFC库支持三种不同的应用程序单文档界面(SDI)多文档界面(MDI)基于对话框的应用程序MDI的应用程序每次可以读写多个文件或文档,可同时对多个主要差别文档进行操作,可以有多个子窗口在创建SDI界面的应用程序时,不生成CChildFrame类,CMainFrame类的基类为CFrameWnd在创建MDI界面的应用程序时,CMainFrame类的基类为CMDIFrameWnd使用AppWizard创建SDI和MDI界面的应用程序的过程几乎完全一样16.1.1单文档界面与多文档界面SDI的应用程序只有一个窗口由于每一个文档可以有多个视图,但每个视图只能对应于一个确

2、定的文档多文档程序需要解决的问题仅仅是多个文档的数据管理方法的问题多文档程序,最初的文档模板只支持主窗口,但每次打开一个新文档时都调用CDocument的函数OnNewDocument,建立一个由CMDIChildWnd派生的新的MDI子窗口,这些窗口中保存着各种已打开的文档,所有的细节都由MFC库处理。视图是文档的不同表现形式比如,一个*.html文件,在浏览器里和在记事本中打开的表现形式是不同的,但它们操作的是同一个文件,这就是一个文档对应两视图在文档/视图结构中文档类通过串行化的过程将数据保存到磁盘文件或数据库中文档类还可处理来自如菜单、工具栏按钮和加速键的WM_COMMAND消息除

3、WM_COMMAND外,文档不能处理其它的Windows消息由此我们可以看出,命令消息可以被多种对象处理,这些对象除了窗口和视图外,还可以是文档、文档模板或应用程序本身这一点与Windows消息和控件通知消息不同,因为Windows消息和控件通知消息就只能被窗口和视图处理。在文档和用户之间起中介作用视图可以直接或间接地访问文档类中的成员变量,它从文档类中(而不是从存储介质中)将文档中的数据取出来,然后在屏幕上显示文档的数据它可以接收用户的输入,并接受用户的修改通过调用文档和视图的接口将修改的信息反馈给文档类,实际的数据更新仍然是由文档来完成的16.1.2文档/视图结构对数据进行管理和维护,

4、数据保存在文档类的成员变量中文档/视图结构的工作机制视图通过GetDocument成员函数获得指向相关联的文档对象的指针通过该指针调用文档类的成员函数来视图把数据显示于计算机屏幕上用户通过与视图的交互来查看数据并对数据进行修改从文档中读取数据视图通过相关联的文档类的成员函数将经过修改的数据传递给文档对象文档对象获得修改过的数据之后,对其进行必要的修改,最后保存到永久介质(如磁盘文件)中方法说明GetTitle()获得文档标题SetTitle()设置文档标题GetPathName()获得文档数据文件的路径字符串SetPathName()设置文档数据文件的路径字符串GetDocTemplate

5、()获得指向描述文档类型的文档模板的指针AddView()对与文档相关联的视图列表添加指定的视图RemoveView()从文档视图列表中删除视图UpdateAllViews()通知所有视图,文档己被修改,它们应该重画DisconnectViews()使文档与视图相分离GetFile()获得指向CFile类型的指针CDocument的一般方法16.2文档类方法说明OnNewDocument()由MFC调用来建立文档OnOpenDocument()由MFC调用来打开文档OnSaveDocument()由MFC调用来保存文档OnCloseDocument()由MFC调用来关闭文档CanClose

6、Frame()确定观察文档的框架窗口是否被允许关闭DeleteContents()在未撤消文档对象时删除文档数据ReleaseFile()释放文件以允许其它应用程序使用SaveModified()查询文档的修改状态并存储修改的文档IsModified()确定文档从它最后一次存储后是否被修订过SetModifiedFlag()设置文档从它最后一次存储后是否被修订过的布尔值GetFirstViewPosition()获得视图列表头的位置GetNextView()获得视图列表的下一个视图CDocument的虚拟方法构造CDocument类的派生类的基本步骤一般来说,从CDocument类派生自己

7、的文档类所需的典型步骤为为每一个文档类型从CDocument类(当然也可以是其它CDocument类的派生类)派生一个相应的文档类。为文档类添加成员变量。这些成员变量用来保存文档的数据,其它对象(如与文档相关联的视图)直接或间接地访问这些成员变量来读取或更新文档的数据。重载Serialize成员函数,实现文档数据的串行化。16.3CDocument类的派生类构造方法说明IsSelected()确定文档是否被选中OnScr

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。