自学内容网 自学内容网

MFC-基础架构

前言

  • 各位师傅大家好,我是qmx_07,今天讲解MFC的基础架构
    在这里插入图片描述

概述

  • 介绍:MFC(Microsoft Foundation Classes)是微软公司提供的一个类库,用于在 Windows 操作系统下进行 C++ 应用程序开发
  • MFC把Windows SDK API函数包装成几百个类,MFC给Windows操作系统提供面向对象的接口,支持可重用性、自包含性以及其他OPP原则。MFC通过编写类来封装窗口、对话框等其他对象,引入关键的虚函数(覆盖虚函数可改变派生类的功能)来完成,MFC设计者使类库带来的总开销降到了最低
  • 本质在SDK的基础上进行了各种简单的封装,例如窗口类,字符串类等

MFC应用程序类型

  • MFC应用程序中的类至少包含一个CWinApp应用程序类和一个CFrameWnd窗口框架类

基于对话框的应用程序:这类程序适合于文档较少而交互操作较多的应用场合,如 Windows 自带的计算器程序。
单文档界面( SDI )应用程序:这类程序一次只能打开一个文档,如 Windows 自带的 Notepad 程序。
多文档界面( MDI )应用程序:这类程序可以同时打开多个文档并进行处理,处理的过程中很容易地进行切换,如 Microsoft Word 。

MFC框架

在这里插入图片描述
MFC类分为两类:

  • CObject基类的派生类,它们以层次结构的形式组织起来
  • 非 CObject 派生类,这些都是独立的类(表示点的 CPoint 类,表示矩形的 CRect 类)

应用程序结构类

  • 应用程序结构类主要是CCmdTarget类与它的派生类,CWinApp类,负责程序的执行流程
  • CCmdTarget类:MFC类库中消息映射体系的基类,继承于Cobject类,负责把消息命令传递给用户编写的消息响应函数,类似于SDK中的WM_COMMAND,如果需要处理消息,就从CCmdTarget派生一个类
  • CWinThread类:CWinThread类继承于CCmdTarget类,负责应用程序内部运行的线程,支持工作线程和用户界面线程,工作线程不能够发送、接收消息,通常用于后台运行用户界面线程能够发送和接收消息CWinAPP的派生类负责 程序的主线程
  • CWinApp类【应用程序类】:继承于CCmdTarget类,负责程序的初始化、运行及退出,在每一个MFC创建的应用程序中都包含CwinApp的派生类
  • CDocument类【文档类】: 继承于CCmdTarget类,提供了文档的基本功能,主要用于代表程序中的数据
  • CDocTemplate【文档模版类】:继承于CCmdTarget类,通过应用程序类的InitInstance函数来创建一或多个文档模版

窗口支持类

  • 包含windows应用程序中的可视元素,窗口,对话框,控件等。窗口支持类的所有类几乎都是Cwnd类派生的
  • CWnd类:继承于CCmdTarget类,提供了MFC中所有窗口类的基本功能,以及处理一些系统消息
  • CFrameWnd【框架窗口类】:继承于CWnd类,封装对各种框架窗口的操作
  • CView【视图窗口类】:继承于CWnd类,应用程序框架窗口中的子窗口,视图是用户与文档交互的媒介,用户可以在视图窗口内输入文本,绘图等
  • CDialog【对话框类】:继承于CWnd类,在屏幕上显示的对话框的基类。CDialog类对象是对话框模版与一个CDialog派生类的组合,通过使用对话框编辑器创建对话框并存入资源之中,然后为对话框创建一个CDialog派生类

安装MFC组件

在这里插入图片描述

  • 点击安装多个工具和功能

在这里插入图片描述

  • 选择用于X86和x64的mfc支持

创建MFC程序

在这里插入图片描述

  • 创建MFC应用程序
    在这里插入图片描述
  • 创建应用程序
    在这里插入图片描述
  • 创建成功

MFC创建弹窗按钮(认识和SDK的区别)

SDK:过程函数响应按钮消息,根据按钮ID确定功能函数
MFC:双击控件 编译器创建过程函数,编辑器会帮我们写以上代码
在这里插入图片描述

  • MFC中绘制图形
    在这里插入图片描述
  • 编辑器自动创建相应函数,替代了写WM_COMMAND的相应过程
  • 在MFC中 任何与句柄相关函数,都会被简化掉,比如上面的原函数内容是:MessageBox(句柄,内容,标题,响应内容)
    画面演示:
    在这里插入图片描述

总结

  • 介绍了MFC框架内容,SDK和MFC的区别,MFC创建视图 弹窗效果

原文地址:https://blog.csdn.net/weixin_58038441/article/details/142330965

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!