• MFC 基础篇(一)


    目录

    一、MFC概述

    二、MFC程序分类

    MFC控制台程序

    MFC库程序

    使用MFC制作静态库

    MFC规则动态库

    MFC扩展库

    MFC窗口程序

    三、MFC库中相关类简介


    一、MFC概述

    MFC :全称是Microsoft Foundation Class Library,我们称微软基础类库。它封装了windows应用程序的各种API以及相关机制的C++类库。

    基于应用程序框架之上,使用提供的类库快速开发,提高项目的开发效率,减少开发周期和成本。

    常用的头文件:

    • afx.h-将各种MFC头文件包含在内
    • afxwin.h-包含了各种MFC窗口类。包含了afx.h和windows.h
    • afxext.h-提供了扩展窗口类的支持,例如工具栏,状态栏等。

    二、MFC程序分类

    • 控制台程序,能使用MFC框架
    • 窗口程序,能使用MFC框架
    • 静态库,能使用MFC框架
    • 动态库,能使用MFC框架

    MFC控制台程序

    创建Windows桌面程序向导

    选择MFC标头 

    和win32的控制台程序的差别

    (1) main函数不同于普通的控制台程序;

    (2) CWinApp theApp;多了一个全局对象

    经验之谈∶

    • 以Afx开头可以确定为MFC库中的全局函数。
    • 以::开头可以确定为win32的API函数。
    • 以XXX::开头可以确定是类的成员函数

    MFC库程序

    使用MFC制作静态库

    就是制作一个静态库,里面的函数是利用MFC实现的

    创建Windows桌面程序向导

    MFC规则动态库

    使用MFC 动态连接库创建项目

    可以在这里随时修改

    • 制作一个动态连接库,使用静态的MFC
    • 制作一个动态连接库,使用动态的MFC

    可以修改

    MFC扩展库

    选择第三个即可

    规则库可以被各种应用程序调用,而扩展库只能被MFC调用。

    扩展库一般是对MFC库某些类的功能拓展,比如继承某个类扩展功能。规则库相是直接调用MFC库实现功能

    MFC窗口程序

    创建一个MFC应用

    有多个MFC应用类型可供选择 

    MFC文档类型使用场景:

    1. 基于对话框的 MFC 项目: 基于对话框的 MFC 项目是一种常见的 MFC 应用程序类型,它的主要界面是一个对话框窗口。对话框窗口通常包含了控件(如按钮、编辑框、列表框等)和菜单等元素,用于与用户交互。该类型的 MFC 项目适合处理简单的界面和交互逻辑。基于对话框的 MFC 项目适合处理简单的界面和交互逻辑;

    2. 基于单个文档的 MFC 项目: 基于单个文档的 MFC 项目是一种支持处理单个文档的应用程序类型,它包含了一个文档视图框架和一个文档类。该类型的 MFC 项目适合处理只有一个文档的应用场景,如文本编辑器等。基于单个文档的 MFC 项目适合处理只有一个文档的应用场景;

    3. 基于多个文档的 MFC 项目: 基于多个文档的 MFC 项目是一种支持处理多个文档的应用程序类型,它包含了一个文档视图框架和多个文档类。该类型的 MFC 项目适合处理多个文档之间相互关联的应用场景,如电子表格、绘图工具等。而基于多个文档的 MFC 项目适合处理多个文档之间相互关联的复杂应用场景。

    单文档视图架构程序,下面的这些类负责程序架构

    • CWinApp-应用程序类,负责管理应用程序的流程
    • CFrameWnd-框架窗口类,负责管理框架窗口
    • CView-视图窗口类,负责显示数据
    • CDocument-文档类,负责管理数据

    红色区域就是框架窗口,黄色区域是视图窗口,是覆盖在框架窗口的客户区之上的

    多文档视图架构程序,下面的这些类负责程序架构

    • CWinApp-应用程序类
    • CMDIFrameWnd-多文档主框架窗口类
    • CMDIChildWnd-多文档子框架窗口类
    • CView-视图窗口类,显示数据
    • CDocument-文档类,管理数据

    红色区域:主框架窗口;黄色区域:子框架窗口;视图窗口:子框架窗口中间的白色部分。

    对话框应用程序,下面的这些类负责程序架构

    • CWinApp-应用程序类
    • CDialog-对话框窗口类

    三、MFC库中相关类简介

    CObject类:

    • MFC类库中绝大部分类的父类,提供了MFC类库中一些基本的机制。
    • 对运行时类信息的支持
    • 对动态创建的支持
    • 对序列化的支持
       

    CWinApp类应用程序类,封装了应用程序、线程等信息。

    CDocument类,文档类,管理数据

    Frame Windows,框架窗口类,封装了窗口程序组成的各种瞭框架窗口

    CSplitterWnd-用来完成拆分窗口的类

    Control Bars-控件条类

    Dialog Boxes -对话框类,封装了各种对话框,通用的对话框

    Views-视图类,封装了各种显示窗口

    Controls-控件类,封装了各种常用的控件

    Exceptions-异常处理类,封装了MFC中常用的各种异常

    File -文件类,各种文件的I/O操作等

    绘图类,包括CDC类和CGdiObject类。

    数据集合类,CArray/Clist/CMap,封装了相应的数据结构的管理

    非CObject类的子类,提供了各种数据结构相关的管理,CPoint ,CTime , CString行

  • 相关阅读:
    git 第一次推代码
    OOM和JVM最详细介绍
    SwiftUI 高级教程之可组合的通用 SwiftUI 视图
    【YOLO5Face】《YOLO5Face:Why Reinventing a Face Detector》
    SUBMIT指定用户名错误
    【Qt学习】第一个Qt Quick程序
    学习随手记ComboBoxEx选定项的值value和text值获取方法
    132. SAP UI5 Simple Form 控件的使用方法介绍
    三、Node.js模块化
    Leetcode 1331. 数组序号转换
  • 原文地址:https://blog.csdn.net/qq_61553520/article/details/134234158