MFC应用程序开发教程1

article/2025/10/22 4:27:45

以下为本人学习笔记
原视频:黑马程序员MFC教程

一、基础概念

  1. SDK:软件开发工具包(Software Development Kit),第三方工具
  2. API:Windows擦欧总系统提供给应用程序编程的接口
  3. 窗口:一个Windows应用程序至少有一个窗口,称为主窗口。是Windows应用程序与用户进行交互的接口。两种窗口:子窗口和父窗口;窗口由两部分构成:客户区和非客户区窗口
  4. 句柄(HANDLE):Windows程序中,有各种各样的资源(窗口、图标、光标、画刷等),系统在创建这些资源时会为他们分配内存,并返回标识这些资源的标识号,即句柄
  5. WinMain函数:当Windows操作系统启动一个程序时,他调用的就是该程序的WinMain函数(实际是由插入到可执行文件中的启动代码调用的)。WinMain是Windows程序的入口点函数,当WinMain函数结束或返回时,Windows应用程序结束
  6. Windows编程模型:
    1 WinMain函数的定义
    2 创建一个窗口
    3 进行消息循环
    4 编写窗口的过程函数

二、创建MFC窗口

一个简单的MFC程序:
一个简单的MFC程序

  1. 因为MFC是由C++编写的,编写MFC程序需要包含#include<afxwin.h> 头文件
  2. 自定义类MyApp继承于CWinApp应用程序类;MyApp app应用程序对象,有且仅有一个
  3. 程序入口InitInstance
  4. 入口中创建窗口
  5. 窗口类MyFrame继承于CFrameWnd
  6. MyFrame构造中 Create(NULL, 窗口名称)
  7. 创建窗口对象
  8. 显示和更新
  9. m_pMainWnd=frame保存指向应用程序的主窗口的指针(一种绑定,规定循环监听哪个窗口的消息)
  10. return True

三、消息映射机制

消息映射是一个将消息和成员函数相互关联的表。
将消息映射添加到一个类中的流程:

  1. 在所操作的类中,声明消息映射宏
  2. 通过放置标识消息的宏来执行消息映射,相对的类将在对BEGIN_MESSAGE_MAP和END_MESSAGE_MAP的调用之间处理消息
    消息映射机制1、2
  3. 对应消息处理函数分别在类中声明,类外定义
    消息映射处理机制的实现3
    相关的宏都可以在MFC中文手册中找到MFC中文手册消息映射宏

消息映射机制总结:

  1. 声明宏,写到.h中
  2. 分界宏,写到.cpp中
  3. 消息宏,写到分界宏中间
  4. 消息处理函数原型,声明到.h中
  5. 消息处理函数实现,写到.cpp中

四、MFC框架中一些重要的函数

  1. CtestAPP-InitInstance()
    应用程序类的一个虚函数,MFC应用程序入口
  2. CMainFrame-PreCreateWindow()
    当框架调用CreateEx函数创建窗口时,会首先调用PreCreateWindow函数。通过修改传递给PreCreateWindow的结构体类型参数CREATESTRUCT,应用程序可以更改用于创建窗口的属性。在产生窗口之前让程序员有机会修改窗口的外观。最后再调用CreateWindowEx函数完成窗口的创建
  3. CMainFrame-OnCreate()
    OnCreate是一个消息响应函数,是响应WM_CREATE消息的一个函数,而WM_CREATE消息是由Create函数调用的。一个窗口创建(Create)之后,会向操作系统发送WM_CREATE消息,OnCreate函数主要是用来响应此消息的。OnCreate不产生窗口,只是在窗口显示之前设置窗口的属性,如风格、位置等。
  4. CtestView-OnPaint() vs OnDraw()
    View类中,如果OnDraw和OnPaint同时存在,OnPaint会覆盖掉OnDraw
    OnPaint是WM_PAINT消息的消息处理函数,在OnPaint中调用;
    OnDraw,一般来说,用户自己的绘图代码应该放在OnDraw中。
    当视图变得无效时(包括大小的改变、移动、被遮盖等),Windows发送WM_PAINT消息,该视图的OnPaint处理函数通过创建CPaintDC类的DC对象来响应消息并调用视图的OnDraw成员函数。OnPaint最后也要调用OnDraw,因此一般在OnDraw函数中进行绘制。

五、其他

  1. MFC中后缀名为Ex的函数都是扩展函数
  2. MFC中,以Afx为前缀的函数都是全局函数,可以在程序的任何地方调用

http://chatgpt.dhexx.cn/article/sae522rN.shtml

相关文章

MFC程序开发概述

MFC程序开发概述 一&#xff1a;MFC类库的产生与发展 在Microsoft推出Windows 3.0之后&#xff0c;Windows操作系统受到越来越多的人的青睐。但是不久&#xff0c;开发人员开发撰写Windows 应用程序是重复&#xff0c;厌烦的过程&#xff0c;而且效率极低。因为每一个窗口都需…

Vim撤消和重做操作

While editing text files with vim we can make some little mistakes or want to revert to the previous states. In Microsoft Word there is features rich undo and revert functions. The similar undo and revert functionalities provided by vim too. 在用vim编辑文本…

idea如何使用git指令

&#xff08;1&#xff09;、打开setting,直接搜git (2)、点一下text 如果显示成功就不用管了&#xff0c;但如果失败就要重新设置一下目录&#xff1a; &#xff08;3&#xff09;、找到自己设置gitee ssh目录&#xff1a; 这里我们是不需要用.git对.idea进行管理的&#xff…

idea操作git流程(图文教程)

idea是jetbrain的一款java编辑器&#xff0c;jetbrain全家桶的编辑器都很好用&#xff0c;接下来就以图文的方式介绍&#xff0c;idea如何操作git 1. 首先你需要在自己电脑上安装一个Git&#xff0c;安装git的流程网上应该很多了&#xff0c;这里就跳过了&#xff0c;后续操作…

IDEA中使用Git的教程

&&前期准备工作 &配置git &配置Github 1.远程创建好GitHub仓库 2.打开Terminal窗口 3.创建README.md和.gitignore文件 $touch README.md $touch .gitignore xml .gitignore内容如下: *.class package files *.war *.ear kdiff3 ignore target/ ec…

在Idea中使用Git

一.在Idea中配置Git 安装好IntelliJ IDEA后&#xff0c;如果Git安装在默认路径下&#xff0c;那么idea会自动找到git的位置&#xff0c;如果更改了Git的安 装位置则需要手动配置下Git的路径。选择File→Settings打开设置窗口&#xff0c;找到Version Control下的git选 项&…

Git的理解以及在IDEA中的使用

目录 什么是版本控制 什么是Git 什么是GitHub Git、GitHub、Gitee的区别 git与GitHub GitHub和Gitee 下载安装Git IDEA中配置Git ​编辑 Gitee的使用 IDEA中使用 添加Gitee账号&#xff1a; 分享项目 设置仓库名字 更新项目 小组团队开发 成员拉取项目 数据库…

IDEA 中 Git的使用

1、Git简介 Git是目前流行的分布式版本管理系统。它拥有两套版本库&#xff0c;本地库和远程库&#xff0c;在不进行合并和删除之类的操作时这两套版本库互不影响。也因此其近乎所有的操作都是本地执行&#xff0c;所以在断网的情况下任然可以提交代码&#xff0c;切换分支。Gi…

IntelliJ IDEA 之 Git 使用

文章目录 1. 本地安装 Git2. IDEA 配置 Git3. 首次检出项目4. 项目分支创建5. 项目分支切换6. 项目刷新分支7. 分支代码提交8. 开发分支合并主分支代码9. 主分支合并开发分支代码10. 代码提交记录进行合并操作11. 常用操作的快捷方式12. 开发分支部分合并到主分支13. 主分支被强…

IDEA中项目集成git提交代码详细步骤

简介&#xff1a;在团队协作开发的过程中&#xff0c;好的代码管理能更加有效的使日常开发的过程中对各个开发人员提高开发速度。下面将详细介绍在IDEA中使用git提交代码的过程&#xff1a; IDEA中使用git提交代码 一&#xff1a;pull代码更新的结果&#xff1a;没有代码需要更…

关于idea使用git的简单说明

一、工具 1、安装git 2、idea 3、使用gitblit搭建服务器 可以参考这个文章&#xff1a;http://blog.csdn.net/u010690828/article/details/53735508 二、idea简单配置 首先idea需要设置git&#xff0c;按一下面步骤走 选择你安装的git, 注意&#xff1a;图上有两个选项&a…

如何在IDEA中使用Git

目录 01.在IDEA中配置Git02.在IDEA中使用Git将文件添加到暂存区03.在IDEA中使用Git将文件推送到远程仓库3.1.项目第一次推送至远程仓库报错问题解决&#xff1a; Push rejected: Push to origin/master was rejected 04.在IDEA中使用Git克隆远程仓库05.在IDEA中使用Git从远程仓…

在 IDEA 中使用 Git

1. 在IDEA中配置Git 点击 settings 找到 Version Control 下的 Git &#xff0c;并把 git.exe 的路径&#xff08;默认&#xff09;选入 在IDEA中使用Git&#xff0c;本质上还是使用的本地安装的Git软件&#xff0c;所以需要在IDEA中配置Git 然后点击 Test &#xff0c;出现版…

如何在IntelliJ IDEA中使用git

0.前言 本文主要讲述在IntelliJ IDEA中使用git的方法&#xff0c;git的原理、命令行使用及可视化图形工具的使用请听下回分解。 首先安装IntelliJ IDEA2018.2以及git 2.28.0 1.在IDEA中配置git 在File–>Settings–>Version Control中找到Git&#xff0c;或者直接搜索…

初次入职,git使用教程:如何在idea使用git拉取代码,提交代码,以及在gitlab上发起合并请求

git的使用相信是很多刚踏入程序员这一行朋友的痛点&#xff0c;刚入职的一段时间非常担心git用错&#xff0c;把别人的代码覆盖掉&#xff0c;下面我详细介绍一下如何在idea上使用git&#xff0c;拉取&#xff0c;提交代码&#xff0c;处理冲突&#xff0c;以及发起合并请求。 …

如何在IDEA 中玩转 Git

文章目录 前言一、基本配置二、clone三、分支四、pull总结 前言 Git 有很多客户端工具&#xff0c;不过感觉还是命令行操作最好用&#xff0c;方便又快捷&#xff0c;不过命令行操作需要小伙伴们对 Git 命令比较熟练&#xff0c;这可能对有的人来说会有一些难度&#xff0c;所…

IDEA中使用Git

目录 一、IDEA中使用Git 配置Git settings ——>Version Control——>Git 点击Test测试版本号 下载gitee插件 配置账户 第一种方式&#xff1a;账号密码 第二种方式&#xff1a;通过Token令牌 分享单个项目 组员需要拿到项目的SSH地址 二、总结 一、IDEA中使用G…

Idea中使用Git详细教学

目录 一、配置 Git 二、创建项目远程仓库 三、初始化本地仓库 方法一&#xff1a; 方法二&#xff1a; 四、连接远程仓库 五、提交与拉取到本地仓库 六、推送到远程仓库 七、克隆远程仓库到本地 方法一&#xff1a; 方法二&#xff1a; 八、Git分支操作 一、配置 G…

Git常用命令、在IDEA中使用Git

文章目录 一、概述二、Git常用命令1.Git全局设置2.获取Git仓库-从远程仓库克隆3.工作区、暂存区、版本库 概念4.Git工作区中文件的状态5.本地仓库操作6.远程仓库操作7.分支操作8.标签操作 三、在IDEA中使用Git1.在IDEA中配置Git2.获取Git仓库3.gitignore文件作用4.本地仓库的操…

2021最新最全!IntelliJ Idea如何使用使用Git!Git到底是什么!(值得一看)

IntelliJ Idea如何使用使用Git&#xff01;Git到底是什么&#xff01; 前言一、Git是什么二、Git 工作区、暂存区和版本库、远程仓库三、Git与SVN的区别3.1 存储方式3.2 使用方式3.3 管理模式 四、Git使用4.1 Git开始、Git 速成4.2 环境配置4.3 创建仓库4.4 pull与push4.5 git分…