【MFC】使用MFC框架(10)

news2024/11/17 3:25:13

MFC不仅仅是一个类库,而且是一个所谓的“设计框架”,注入了很多开发理念和设计思想。类库与框架的区别可以理解为“食材”与“火锅”套餐的区别——火锅套餐已经标明了开发者必须接受已定的一些规则,包括“Message Mapping消息映射机制”、“Persistence永久保存机制”、“文档视图框架三口组”、“ RTTI(运行时类型识别)”等等。了解MFC的六大机制(关键技术)是有必要的,但是初学者的重中之重是着力于使用MFC框架去解决实际问题,建议了解必须掌握的“三口组”(数据保存“和“消息映射”(消息驱动)即可。

创建MFC应用程序

第一步,创建项目 

第二步,选择应用程序类型、界面等等

其中:

1、对话框应该是最简单的MFC应用程序类型(没有涉及文档保存问题),多文档应用程序类型在应用中其实比较少见,所以选择单文档应用程序学习MFC是比较好的选择;

2、项目类型是程序风格(界面),MFC标准则是传统的窗口风格,后面三种都添加了很多丰富的窗口风格类型,当然也注入了很多与风格相关的类;

3、使用Unicode会导致对字符串的处理与前面SDK(多字节)开发有很多区别,包括WinApi的使用,建议取消(创建后可以修改);

4、静态使用MFC可以将MFC打包到编译好的应用程序(运行时不需要额外提供MFC DLL)

第三步,可以修改”三口组“以及应用程序数据的扩展名(略)

创建好的MFC单文档应用程序如下:

除stdafx预编译头文件、  resource 资源文件,targetver版本文件外,可以看到应用程序包括:

1、CMainFrame 主框架类,继承于CFrameWnd:管理View、菜单、工具条、状态条以及各个类之间的耦合;

2、CMFC03App 应用程序类,继承于CWinAppEx:应用程序初始化、文档模板;

3、CMFC03Doc 文档类,继承于CDocument:管理数据(读写),串行化机制;

4、CMFC03View 视图类,继承于CView : 显示数据,用户工作区;

运行效果:

 打开资源视图,可视化设计:

1、菜单命令:视图-》其他窗口-》资源视图;

2、双击工程中资源文件的rc文件;

3、快捷键 shitt + ctrl + E 

如在资源视图中修改菜单:

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

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

相关文章

忽略语法细节,从整体上理解函数

从整体上看,C语言代码是由一个一个的函数构成的,除了定义和说明类的语句(例如变量定义、宏定义、类型定义等)可以放在函数外面,所有具有运算或逻辑处理能力的语句(例如加减乘除、if else、for、函数调用等&…

配置中心-开源系统对比分析

一、为什么需要配置中心 1、配置实时生效 传统的静态配置方式要想修改某个配置只能修改之后重新发布应用,要实现动态性,可以选择使用数据库,通过定时轮询访问数据库来感知配置的变化。轮询频率低感知配置变化的延时就长,轮询频率…

运放电路中电容的作用-运算放大器

在运放电路中,大家可能会经常看到这么几个电容,分别是: 1、电源VCC到地 2、反馈输入输出引脚之间 3、正负两输入端之间的电容 就算不要这几个电容,电路好像也能工作,但电路设计一般都会加上,那么这几个电…

软件无线电之数字下变频(Matlab实例)

软件无线电之数字下变频 1 原理 在通信系统中,为了易于信号发射以及实现信道复用,传输的信号发射频率一般很高。 在接收机中,为了降低信号的载波频率或是直接去除载波频率得到基带信号,通常将接收信号与本地振荡器产生的本振信…

Java循环综合案例

文章目录Java循环综合案例案例一:逢 7 跳过案例二:数组元素求和案例三:判断两个数组是否相同案例四:查找元素在数组中的索引案例五:数组元素反转案例六:评委打分案例七:随机产生验证码Java循环综…

那些年我们拿下了 Zynq

小菜鸟的 Zynq 学习经验分享~ 资料来源:黑金 Zynq7035 开发板配套资料,完全适合于 Zynq 学习。 获取方式:【51爱电子】回复【Zynq7000】即可获取资料链接!本资料仅供学习使用,切勿商用。 另外四个是关于 Altera FPGA…

跨域和cookie

本文以前端的视角来探讨浏览器的跨域和cookie问题。 一、跨域 跨域简介: 为什么会出现跨域? 出于浏览器的同源策略限制,浏览器会拒绝跨域请求。 什么情况下出现跨域? 不同源就会跨域。同源即:协议、域名、端口号…

图文详解:箭头函数与常规函数的this指向问题

函数中this的指向问题特别容易让人迷糊,这里用示例来指点迷津,走出迷茫。 常规函数下的this指向 1. 纯粹的函数调用 function test(name) { console.log(name) console.log(this) } test(zjcopy) ; test.call(zjcopy, cuclife-2) ; test.call(fal…

pytesseract 安装错误总结

项目场景: 使用eclipse调用pytesseract接口,进行OCR识别。 在anaconda的python3.6.4版本,安装配置pytesseract 问题描述 pip install pytesseract 报错 错误提醒:pytesseract requires Python >3.7 but the running Python…

【数据结构】顺序栈的原理及实现

【数据结构】顺序栈的原理及实现 1.什么是栈 栈它是一种先进后出的有序列表数据结构。栈是线性表里的元素插入和删除只能在该线性表的同一端进行的一种特殊线性表。该线性表的插入和删除都叫栈顶,也就是变化的一端。另一端是固定不变的成为栈底。根据下图可以看出…

《高性能MySQL》——架构与历史(笔记)

文章目录一、MySQL架构与历史1.1.1 连接管理与安全性1.1.2 优化与执行1.2 并发控制1.2.1 读写锁1.2.2 锁粒度(锁模式)表锁(table lock)行级锁(row lock)1.3 事务1.3.1 隔离级别READ UNCOMITTED (读未提交)READ COMMITTED (读提交)REPEATABLE READ (可重复…

初识C++(学习计划)

前言 基于对C语言的学习,我将进一步学习C的相关知识。 我们在使用C语言时创建的是.c文件,使用C使用的是.cpp文件,其中p——plus(加,的意思),所以cpp就是c。 C是为了解决一些C语言不能解决的问题…

SpringBatch使用(一)

一、SpringBatch简介 1、Spring Batch是一个轻量级,全面的批处理框架,旨在开发对企业系统日常运营至关重要的强大批处理应用程序。Spring Batch构建了人们期望的Spring Framework特性(生产力,基于POJO的开发方法和一般易用性&…

docker安装elasticsearch kibana 8.6.0(设置密码+汉化+ik分词器)

安装eskibana安装:拉取镜像并安装设置密码汉化配置ik分词器安装: 记得开放使用的端口,或者关闭防火墙 提示:需要提升虚拟机或者服务器的内存到8G以上 拉取镜像并安装 docker pull elasticsearch:8.6.0 docker pull kibana:8.6.0docker network create es-netdocker run -it…

Itext7在PDF指定位置添加电子公章

目录 1. 电子公章的制作 2. java工具keytool生成p12数字证书文件 3. pom依赖 4. 实体类 5. 工具类及测试示例 6. 效果 1. 电子公章的制作 做章网站:http://seal.biaozhiku.com/ 我们选择圆形印章 然后输入公司名,输入章名输入编码然后点击395生成&…

快速幂及矩阵快速幂分析及代码实现

文章目录前言一、认识快速幂二、快速幂思路及代码三、矩阵快速幂3.1、矩阵乘法代码实现3.2、矩阵快速幂代码实现参考资料前言 在学习Acwing c蓝桥杯辅导课第九讲复杂DP-AcWing 1303. 斐波那契前 n 项和时有使用到矩阵快速幂算法,这里来记录下知识点正好也将快速幂部…

车载以太网 - SomeIP测试专栏 - 详细解析 - 01

对于介绍SomeIP协议,我还是想从最基础的协议解析来,所以今天还是先将SomeIP协议详解给大家列举一下,也方便大家在工作中如果不记得哪些信息随时可以查看学习,也算是留给我自己的笔记吧,毕竟确实容易忘记。 SomeIP数据&…

分布式数据库中间件——Mycat2

一、Mycat2 概述 Mycat是基于java语言编写的数据库中间件,核心功能是分库分表和读写分离,可以将大表水平分割为N个小表。 可以看做为Mysql的数据库服务器,可以用连接Mysql的方式去连接Mycat,端口为8066 二、Mycat的三大作用 2.…

Node 项目中常见的问题及解决方法

1. window和mac下设置NODE_ENV变量的问题 我们都知道在前端项目中会根据不同的环境变量来处理不同的逻辑,在node后端中也一样,我们需要设置本地开发环境、测试环境、 线上环境等,此时有一直设置环境变量的方案是在package.json中的script属性…

Python学习笔记——错误和异常

错误的分类编写程序过程中遇到的错误都分为两类:语法错误与运行时错误。语法错误:当代码不符合Python语法规则时, 在解析过程中会报SyntaxError。运行时错误:即语句或表达式在语法上都是正确的, 但在运行时发生了错误。当程序发生异常时&…