zoukankan      html  css  js  c++  java
  • Visual C++ 2008入门经典 第13章 使用MFC编写Windows程序 简单

    // 第13章 使用MFC编写Windows程序
    /*
    基于MFC的程序的基本元素
    SDI应用程序和MDI应用程序的区别
    如何使用MFC Application Wizard 生成SDI和MDI程序
    MFC Application Wizard将生成哪些文件,这些文件的内容是什么
    在MFC Application Wizard生成的程序中有哪里些主要的类,它们是如何相互连接的
    定制MFC Application Wizard生成的程序的通用方法
    
    //13.1 MFC的文档/视图概念
    //使用MFC编写应用程序,意味着要接受一种特有的程序结构,其中应用程序数据是以特定的方式存储和处理的
    MFC程序的结构包括两个面向应用的实体--文档和视图
    
    
    13.1.1 文档的概念
    文档是给予应用程序中与用户交互的数据集合的名称
    文档类是从MFC库中的CDocument类派生的,需要添加数据成员来存储应用程序需要的数据,还要添加成员函数来支持对数据的处理,
    应用程序不仅仅限于单文档类型,当应用程序中涉及若干不同种类的文档时,可以定义多个文档类
    
    13.1.2 文档界面
       可以选择是让程序每次中处理一个文档,还是处理多个文档,MFC库支持的单个文档界面的一缩写为SDI,用于那些每次只需要打开一个文档的程序,使用这种界面的程序称为SDI应用程序
       对于那些需要一次打开多个文档的程序来说,可以使用多文档界面--通常称为MDI
    
    13.1.3 视图的概念
       视图总是与特定的文档对像相关
       注意:视图对像和显示视图的窗口是截然不同的
       显示视图的窗口被称为框架窗口,视图实际上是在自己的,完全充满框架窗口的客户区的窗口中显示的
    
       文档对像可以拥有任意多个与其相关的视图对像,各个视图对像可以提供文档数据或文档数据子集的不同表示方法.
    
    
    13.1.4 连接文档和视图
       MFC提供了使文档与其视图相结合,以及使各个框架窗口与当前的活动视图相结合的机制,文档对像自动维护着指向相关视图的指针列表
       //而视图对像拥有存储相关文档对像的指针的数据成员
    
       1 文档模板
         文档模板不仅管理程序中的文档对像,还管理与文档相关的窗口和视图,
    
       2 文档模板类
       对于SDI应用程序来说,应当使用MFC库中的CSingleDocTemplate类,这个类相当简单,因为SID应用程序只有一个文档,通常也只有一个视图
       MDI应用程序则相当复杂,它们拥有多个同时在活动的文档,国在线需要使用另一个类CMultiDocTemplate来定义其文档模板,
    
    13.1.5 应用程序和MFC
       应用程序类CMyApp
       框架窗口类CMyWnd
       视图类CMyView,该类定义如何在CMyWnd对像创建的窗口的客户区中显示CMyDoc对像包含的数据
       文档类CMyDoc,该类定义包含应用程序数据文档
    
    13.2 创建MFC应用程序
       在基于MFC的windows程序开发过程中,
    
    视图类的功能
    CEditView 提供简单的多行文本编辑功能--包括查找和替换,打印
    CFormView 提供表单视图: 表单位一种对话框,可以包含提供数据显示和用户输入等功能的控件,
    表单实质上与将在第22单学习的,在CLR中运行的Windows Forms应用程序中的窗体具有相同的功能性
    
    CHtmlEditView 该类扩充了CHmtlView类,添加了编辑HTML页面的功能
    CHtmlView 提供可以显示Web页面和本地HTML文档的视图
    CListView 使我们能够了以列有控件的形式使用文档-视图体系结构
    CRichEditView 提供显示和编辑包含丰富编辑文本的文档的功能
    CScrollView 提供可以在显示和数据需要时自动添加滚动条的视图
    CTreeView 提供以权形控件形式使用文档-视图体系结构的功能
    CView 提供查看文档的基本功能
    
    
    //13.2.2 MFC Application Wizard的输出
       1 查看项目文件
       2 查看类
       3 定义类
       注意: 宏不是C++代码,宏是上预处理器指令#define定义的名称,将被通常是C++代码的某些文本代替,但代替宏的也可能是某种常量或符号
    
       4 创建可执行模块
       注意: 当使用调试本配置编译程序时,编译器不会检测未初始化的变量,因此,即使我们仍然要测试程序,也可能需要临时使用发布版本配置进行连接和编译
       
       预编译头文件
    
       5 运行程序
    
       6 程序的工作原理
    
    
    13.3 小结
    
    1 MFC Application Wizard 可以为我们生成完整的,可工作的,根据我们的要求定制的Windows应用程序框架构
    
    2 Application Wizard 可以生成处理单个文档和单个视图的单文档界面(SDI)应用程序,也可以生成能够同时处理多个文档和多个视图的多文档界面(MDI)程序
    
    3 在SDI应用程序中,从MFC类中派生的四个基本的类如下:
      应用程序类
      框架窗口类
      文档类
      视图类
    
    4 程序只能有一个应用程序对象,该对像是由Application Wizard在全局作用域内自动定义的
    
    5 文档类对像存储应用程序特有的数据,视图类对像显示文档类对像的内容
    
    6 文档模板类对像用来把文档,视图和窗口捆绑在一起,对SDI应用程序来说,做这件事的是CSingleDocTemplate类;而在MDI应用程序中,使用的是CDocTemplate类
    这两个类都是MFC类,通常不需要派生专用的版本
    
      
    */
    

      

  • 相关阅读:
    【翻译】JavaScript循环和作用域
    【js-xlsx和file-saver插件】前端导出数据到excel
    H5混合开发进阶
    一分钟搞定vue全局注册事件eventBus
    cordova+vue构建app进阶
    LayaBox进阶之UI管理器
    Layabox进阶之资源加载
    H5混合开发进阶之inspect调试
    认识json
    正则学习记录
  • 原文地址:https://www.cnblogs.com/xiangxiaodong/p/2789799.html
Copyright © 2011-2022 走看看