VC MFC编程:单文档与多文档界面解析

需积分: 10 2 下载量 168 浏览量 更新于2024-08-02 收藏 212KB PPT 举报
"VC Windows 编程主要涵盖了两种类型的界面设计——单文档界面(SDI)和多文档界面(MDI),以及MFC库在其中的作用。此外,还涉及到文档/视图结构这一重要的编程概念。" 在Windows编程中,Visual C++(VC)使用Microsoft Foundation Class (MFC) 库来简化应用程序开发。MFC库提供了许多预先封装的类,使得开发者能够轻松创建符合Windows标准的应用程序。SDI和MDI是两种不同的用户界面模式,它们用于处理不同数量和类型的文档。 **单文档界面(SDI)**:SDI应用程序允许用户一次专注于一个文档。在这种模式下,只有一个窗口,通常这个窗口是基于`CFrameWnd`类的`CMainFrame`。SDI应用程序不生成`CChildFrame`类,因为它不需要处理多个子窗口。 **多文档界面(MDI)**:相比之下,MDI应用程序允许用户同时处理多个文档。每个文档都有自己的窗口,这些窗口通常是`CMDIChildWnd`类的实例。MDI应用程序的`CMainFrame`类继承自`CMDIFrameWnd`,以便支持多个子窗口。每当打开新文档时,系统会自动创建一个新的MDI子窗口来显示文档内容。 **创建SDI和MDI应用程序**:使用AppWizard创建这两种类型的应用程序的过程非常相似。AppWizard是VC的一个辅助工具,它能自动生成应用程序的基本框架,包括所需的类和代码。 **文档/视图结构**:这是MFC的核心设计模式之一。在这个结构中,文档类(如`CDocument`)负责存储和管理数据,而视图类(如`CView`)则负责显示数据和接收用户输入。每个视图都对应一个特定的文档,但一个文档可以有多个视图。例如,一个HTML文件可以在浏览器和记事本中以不同的方式显示,但它们都操作的是同一个文档。 **数据管理**:文档类通过串行化机制将数据保存到磁盘或数据库,同时处理来自菜单、工具栏按钮等的命令消息。视图不处理Windows消息,但能处理命令消息。视图作为中介,将用户对屏幕内容的修改反馈给文档类,确保数据的更新。 **消息处理**:命令消息可以被多种对象处理,不只是窗口和视图,还包括文档、文档模板和应用程序本身。这与Windows消息和控件通知消息的处理方式不同,后者只能由窗口和视图处理。 VC Windows编程的SDI和MDI模式提供了灵活的用户界面设计,而文档/视图结构则是实现高效数据管理和用户交互的关键机制。理解并熟练运用这些概念,开发者可以构建出功能强大且用户友好的Windows应用程序。