欢迎来到天天文库
浏览记录
ID:46333136
大小:757.00 KB
页数:68页
时间:2019-11-22
《第7章文档和视图》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第7章文档和视图7.1文档模板7.2文档序列化7.3视图及视图类7.4文档视图结构7.1文档模板7.1.1文档模板类文档应用程序框架结构是在程序运行一开始构造的。多文档模板类CMultiDocTemplate的构造函数也有相同的定义。代码:BOOLCEx_MDIApp::InitInstance(){…CMultiDocTemplate*pDocTemplate;pDocTemplate=newCMultiDocTemplate(IDR_EX_MDITYPE,//资源IDRUNTIME_CLASS(CEx_MDIDoc),//文档类RUN
2、TIME_CLASS(CChildFrame),//MDI文档窗口类RUNTIME_CLASS(CEx_MDIView));//视图类AddDocTemplate(pDocTemplate);//创建主框架窗口CMainFrame*pMainFrame=newCMainFrame;if(!pMainFrame->LoadFrame(IDR_MAINFRAME))returnFALSE;m_pMainWnd=pMainFrame;…returnTRUE;}7.1文档模板7.1.2文档模板字串资源StringTable(字符串)资源列表中也有
3、一个IDR_MAINFRAME项,用来标识文档类型、标题等内容,称为“文档模板字串资源”。内容如下:Ex_SDIEx_SDIExSDI.DocumentEx_SDIDocumentIDR_MAINFRAME标识的字符串分成了一些以“”结尾的子串,含义如表。文档模板字串资源内容既可直接通过字串资源编辑器进行修改,也可以在文档应用程序创建向导的第四步中,通过“AdvancedOptions”对话框中的“DocumentTemplateStrings”页面来指定,如图。7.1文档模板7.1.3使用多个文档类型(1)用
4、MFCAppWizard创建一个默认的多文档应用程序项目Ex_MDIDemo。(2)打开项目工作区窗口中StringTable,双击StringTable,如图。(3)双击IDR_MAINFRAME列表项,将其标题修改为“多个文档类型实例”,如图。(4)双击IDR_EX_MDITYPE列表项,在字符串属性对话框中,将其内容修改为:PictureMDIDemo图片图片文件(*.bmp).bmpExMDIDemo.DocumentEx_MDIDocument7.1文档模板(5)拖动字符串表右边的滚动块,双击最后的空行,
5、在字符串属性对话框中将ID设为IDR_OTHERTYPE,标题内容设为:TxtMDIDemo文本文本文件(*.txt,*.cpp,*.h).txt;*.cpp;*.hExMDIDemo.DocumentEx_MDIDocument如图。IDR_OTHERTYPE标识符后面的“=130”是将该标识符值设为130。关闭属性对话框,标识为IDR_OTHERTYPE字串项就添加到字串表中。(6)按快捷键Ctrl+W,单击[AddClass],在Name框中输入类名COtherDoc,在Baseclass组合框中选择基类CD
6、ocument,如图。7.1文档模板(7)单击[OK]。再添加一个新的视图类COtherView,基类为CView。单击[确定],关闭MFCClassWizard对话框。(8)修改CEx_MDIDemoApp::InitInstance函数代码,如下所示:BOOLCEx_MDIDemoApp::InitInstance(){…CMultiDocTemplate*pDocTemplate;pDocTemplate=newCMultiDocTemplate(IDR_EX_MDITYPE,RUNTIME_CLASS(CEx_MDIDemoDoc
7、),RUNTIME_CLASS(CChildFrame),RUNTIME_CLASS(CEx_MDIDemoView));AddDocTemplate(pDocTemplate);pDocTemplate=newCMultiDocTemplate(IDR_OTHERTYPE,//指定新的资源RUNTIME_CLASS(COtherDoc),//指定新的文档类RUNTIME_CLASS(CChildFrame),RUNTIME_CLASS(COtherView));//指定新的视图类AddDocTemplate(pDocTemplate);
8、…returnTRUE;}7.1文档模板(9)在Ex_MDIDemo.cpp的开始处,添加包含前面创建的两个派生类的头文件:#include"Ex_MDIDemoDoc.h"#include"
此文档下载收益归作者所有