文档与串行化 主讲人:孙鑫 http://www.sunxin.org
文档与串行化 主讲人:孙鑫 http://www.sunxin.org
String Table FIDR MAINFRAME 字符串资源中各子串的含义 (1) CDoCTemplate: window title,主窗口标题栏上的 字符串,MD程序不需要指定,将以 IDR MAINFRAME字符串为默认值 2 CDocTemplate: donate,缺省文档的名称。如 果没有指定,缺省文档的名称是无标题 (3) CDoCTemplate: fileNewName,文档类型的名称 如果应用程序支持多种类型的文档,此字符串将 显示在"Fie/New"对话框中。如果没有指定,就不 能够在"Fie/New"对话框处理这种文件。 http://www.sunxin.org
String Table中IDR_MAINFRAME 字符串资源中各子串的含义 ◼ (1)CDocTemplate::windowTitle,主窗口标题栏上的 字符串,MDI程序不需要指定,将以 IDR_MAINFRAME字符串为默认值。 ◼ (2)CDocTemplate::docName,缺省文档的名称。如 果没有指定,缺省文档的名称是无标题。 ◼ (3)CDocTemplate::fileNewName,文档类型的名称。 如果应用程序支持多种类型的文档,此字符串将 显示在"File/New"对话框中。如果没有指定,就不 能够在"File/New"对话框处理这种文件。 http://www.sunxin.org
String Table FIDR MAINFRAME 字符串资源中各子串的含义 (4 CDocTemplate; filterName,文档类型的描述和一个适用 型的通 On对话框甲的义件类型列表框中。要和 CDocTemplate: filterExt- 起使用。 CDocTemplate; filterext,文档的扩展 如果没有指定 就不能够在 File/Open 对话框中处理这种文档。要和 CDoCTemplate: filterName一起使用。 (6 CDocTemplate: reg Typed,如果你 Register ShellFileTypes向系统的注册表注册文件类型,此 值会出现在 HEY CL 成为其子项,并仅 供 Windows内部便用。如果没有指定,这种文件类型就无 法注册。 (7CDoc Template regFile reName,这也是存储在注册表 中的文件类型名称。它会显示于程序中用以访问注册表的 对话框内。 http://www.sunxin.org
String Table中IDR_MAINFRAME 字符串资源中各子串的含义 ◼ (4)CDocTemplate::filterName,文档类型的描述和一个适用 于此类型的通配符过滤器。这个字符串将出现在 “File/Open”对话框中的文件类型列表框中。要和 CDocTemplate::filterExt一起使用。 ◼ (5)CDocTemplate::filterExt,文档的扩展名。如果没有指定, 就不能够在“File/Open”对话框中处理这种文档。要和 CDocTemplate::filterName一起使用。 ◼ (6)CDocTemplate::regFileTypeId,如果你 以::RegisterShellFileTypes向系统的注册表注册文件类型,此 值会出现在HEY_CLASSES_ROOT之下成为其子项,并仅 供Windows内部使用。如果没有指定,这种文件类型就无 法注册。 ◼ (7)CDocTemplate::regFileTypeName,这也是存储在注册表 中的文件类型名称。它会显示于程序中用以访问注册表的 对话框内。 http://www.sunxin.org
DOcument/View结构 ■在MC中,文档类负责管理数据,提供保存和加载数据的功能。视类 负责数据的显示,以及给用户提供对数据的编辑和修改功能 ■MFC给我们提供 Document/View结构,将一个应用程序所需要的“数 以在派生类中重写这些函数。有关文件函数都是虚函数,我 处理与显示”的函数空壳都设计女 Document realize函数中 有关数据和图形显示的操作在CⅤiew的 Ondraw函 数中进行。我们在其派 只需要去关注 Serialize和 sOnDra函数 就可以了,其它的细节我们不需要去理会,程序就可以良好地运行 ■当我们 lication framework会激活文件打开对话 框,让你指定文件名,然后自动调用 CGraphicDoc: Serialize取文 Application Framework还会调用 Graphicview: Ondraw,传递 ,让你重新绘制窗口内容。 MFC给我们提供 Document/view结构,是希望我们将精力放在数据结 构的设计和数据 的操 而不要把时间和精力花费在对象与对 间、模玦亐模块之间的通信 文 个又程对 子致箱买和多个视关对象相关联,而一个视关对象只能和 http://www.sunxin.org
Document/View结构 ◼ 在MFC中,文档类负责管理数据,提供保存和加载数据的功能。视类 负责数据的显示,以及给用户提供对数据的编辑和修改功能。 ◼ MFC给我们提供Document/View结构,将一个应用程序所需要的“数 据处理与显示”的函数空壳都设计好了,这些函数都是虚函数,我们 可以在派生类中重写这些函数。有关文件读写的操作在CDocument的 Serialize函数中进行,有关数据和图形显示的操作在CView的OnDraw函 数中进行。我们在其派生类中,只需要去关注Serialize和OnDraw函数 就可以了,其它的细节我们不需要去理会,程序就可以良好地运行。 ◼ 当我们按下“File/Open” ,Application Framework会激活文件打开对话 框,让你指定文件名,然后自动调用CGraphicDoc::Serialize读取文件。 Application Framework还会调用CGraphicView::OnDraw,传递一个显示 DC,让你重新绘制窗口内容。 ◼ MFC给我们提供Document/View结构,是希望我们将精力放在数据结 构的设计和数据显示的操作上,而不要把时间和精力花费在对象与对 象之间、模块与模块之间的通信上。 ◼ 一个文档对象可以和多个视类对象相关联,而一个视类对象只能和一 个文档对象相关联。 http://www.sunxin.org