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创建视图 弹窗效果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/144875.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

解决:The play() request was interrupted by a call to pause().报错

前言: 最近在公司中实现进入页面之后点击单词直接播放音频的时候,发现音频并不会播放声音,并且控制台报错: 研究之后找到了解决方案,与小伙伴们进行分享 原因: 首先看这句话的意思: 在调用 …

红黑树构建模拟实现

目录 一.红黑树概述 二.红黑树的性质 ​编辑 三.构建红黑树模拟实现 插入新节点情况分析 情况一、cur为红色,parent为红色,grandfather为黑色,uncle存在且为红 情况二、cur为红色,parent为红色,grandfather为黑色…

VS运行程序时报错--无法定位程序输入点

发现问题: VS 在运行程序时,报错: 找到原因: 因为我在替换动态库的时候,只替换了lib库,没有替换运行目录下的dll库,运行时候的dll与程序中的lib库不对应。 替换库后就能解决这个问题。

PyTorch使用------自动微分模块

目录 🍔 梯度基本计算 1.1 单标量梯度的计算 1.2 单向量梯度的计算 1.3 多标量梯度计算 1.4 多向量梯度计算 1.5 运行结果💯 🍔 控制梯度计算 2.1 控制不计算梯度 2.2 注意: 累计梯度 2.3 梯度下降优化最优解 2.4 运行结果&#x1…

dgl库安装

此篇文章继续上一篇pytorch已经安装成功的情况 (python3.9,pytorch2.2.2,cuda11.8) 上一篇pytorch安装教学链接 选择与之匹配的版本 输入下方代码进行测试 import dgl.data dataset dgl.data.CoraGraphDataset() print(‘Numb…

契约锁与您相约2024新疆数字经济创新大会暨新疆数字丝路博览会

9月20日,由新疆数字经济联合会主办,多家行业协会及企业共同承办的“2024(第一届)新疆数字经济创新发展大会暨新疆数字丝路博览会”在新疆国际会展中心盛大开幕,活动期间,契约锁作为电子签章行业领先的服务商携数字可信系列产品亮相…

小程序服务零工市场

零工市场小程序有着信息发布、岗位匹配、线上接单、零工人员保障险参保、技能培训、费用结算、完工确认、服务评价、纠纷调解等功能,为求职者和雇主搭建一座高效、便捷、精准的对接桥梁。 用工单位通过小程序的“雇主找人”,发布招聘信息,找到…

本地生活商城开发搭建 同城O2O线上线下推广

同城本地化商城目前如火如荼,不少朋友咨询本地生活同城平台怎么开发,今天商淘云与大家分享同城O2O线上商城的设计和开发。 本地生活商城一般会涉及到区域以及频道类,一般下单需要支持用户定位、商家定位,这样利于用户可以快速找到…

一文解读OLAP的工具和应用软件

OLAP(OnlineAnalyticalProcessing)是一种用于快速分析大规模、多维度数据的方法。OLAP工具和应用软件则是帮助人们进行OLAP分析的重要工具。本文将介绍几种常见的OLAP工具和应用软件,并探讨它们在数据分析中的作用。 一 OLAP工具的分类 在选…

巴菲特的长期投资策略:新投资者实现财务自由的启示

在投资界,沃伦巴菲特的名字几乎无人不晓。作为伯克希尔哈撒韦公司的董事长和首席执行官,巴菲特以其卓越的投资智慧和长期价值增长策略,成为了全球投资者的偶像。巴菲特的成功不仅仅是因为他的财富,更在于他对投资的深刻理解和对财…

Centos 7 搭建Samba

笔记: 环境:VMware Centos 7(网络请选择桥接模式,不要用NAT) 遇到一个问题就是yum 安装404,解决办法在下面(没有遇到可以无视这句话) # 安装Samba软件 yum -y install samba# 创建…

使用MinIO+PicGo在服务器搭建图床

创建minio目录 用于存放Minio可执行文件 mkdir /usr/local/minio下载minio # 进入到/usr/local/minio cd /usr/local/minio # 执行下载 wget https://dl.min.io/server/minio/release/linux-amd64/minio # 授权下载文件为可执行文件 chmod x minio创建存储目录 # 新建data存…

最短路: Djikstra

最短路: Djikstra 适用于边权非负 如果存在负边权, 则当前距离dist最小的点, 不一定就是实际离源点最近的点,可能有负边导致其它路径离当前点更近 如下图所示, 如果存在负边, y点距离S点最近, 所以选中y点进行松弛, 贪心思想 当边权非负,离起点S最近的点,不能被更新, 如果在…

相亲交友系统 现代爱情的导航仪

在这个数字化的时代,人们的生活方式发生了翻天覆地的变化,其中最显著的变化之一便是交友方式的转变。编辑h17711347205随着社会节奏的加快,越来越多的人选择通过相亲交友系统来寻找人生伴侣。相亲交友系统不仅简化了传统的交友流程&#xff0…

【版本更新】TDuckX表单1.9版来了

hi,朋友们大家好,填鸭表单TDuckX迎来了9月的版本更新;接下来让我们看看本次更新的详细内容吧。 1.新增360评估(Bate版本) 360度评估反馈(360Feedback),又称“360度考核法”或“全方位考核法”&#xff0c…

人工智能在肿瘤浸润淋巴细胞研究中的最新进展|文献速递·24-09-20

小罗碎碎念 文献速递|目录 一、胆道癌治疗应答的新型AI生物标志物:肿瘤浸润性淋巴细胞的空间分布 补充文献:22年发表于JCO的一篇类似文献 二、生物标志物在肝细胞癌管理中的作用:从发现到临床应用 三、肿瘤样本中免疫细胞浸润水…

pdb文件查看工具pdbripper.exe

下载地址:https://www.bing.com/ck/a?!&&p249322afbfbc575bJmltdHM9MTcyMTM0NzIwMCZpZ3VpZD0yMjBkODE2MC1hYjNhLTZkYTMtMGVlYi05NWQ5YWE3OTZjOGEmaW5zaWQ9NTE4Mg&ptn3&ver2&hsh3&fclid220d8160-ab3a-6da3-0eeb-95d9aa796c8a&psqpdbripper.exe&…

[Linux]:信号(上)

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:Linux学习 贝蒂的主页:Betty’s blog 1. 信号的引入 1.1 信号的概念 在Linux系统中,信号(…

2024年及未来:构筑防御通胀的堡垒,保护您的投资

随着全球经济的波动和不确定性,通货膨胀已成为投资者不得不面对的现实问题。通胀会侵蚀货币的购买力,从而影响投资的实际回报。因此,制定有效的策略来保护投资免受通胀影响,对于确保资产的长期增值至关重要。在2024年及未来&#…

着色器ShaderMask

说明 实现一个渐变进度条,要求: 颜色渐变的过程是循序渐进的,而不是看起来像是将渐变条逐渐拉长了。 效果 源码 // 渐变进度条Stack(children: [// 背景色板Container(width: 300,height: 8,decoration: BoxDecoration(borderRadius: Bord…