vs2019中使用MFC构建简单windows窗口程序

 更新时间:2021年06月07日 14:10:58   作者:小舍先生  
今天发现网上好多MFC代码都不能用,给大家分享一个简单的MFC窗口语言,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

微软基础类库(英语: Classes,简称MFC)是微软公司提供的一个类库(class libraries),以C++类的形式封装了Windows API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。其中包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类。

图片.png

vs 2019 最新版,在设计上又有了很大的变化,并且其所有的服务,模块都是自定义搭建的,所以在一开始安装的时候,没有勾选mfc模块的话,是无法快速构成mfc应用的.

vs2019下MFC模块的安装

首先,在项目中新建一个项目,进入项目创建选项卡,看看是否有mfc项目,如果没有则需要更新vs,加载mfc模块.

图片.png

将项目创建卡拉到最下面,点击安装更多工具和功能

图片.png

进入vs模块更新界面,在这里可以更新你的vs所装的模块,要想支持mfc开发,需要勾选c++桌面开发中的mfc模块,默认情况下是不勾选的.然后更新即可.不要选择单个组件安装,会出现各种棘手的问题.

图片.png

创建MFC项目:

安装好mfc模块后,我们创建mfc项目,创建完成后会进入mfc项目的基本属性定义选项卡: 

图片.png

在这里,我们选择单文档程序,项目样式选择mfc基本样式,当然你还可以定义其他各种自定义属性.定义好基本属性之后,点击完成,一个mfc模板就创建好了.

我们直接将项目设为启动项目,调试运行,即可弹出一个默认的窗口:

图片.png

如此,一个简单的mfc窗口程序就快速构建成功了,我们只需要在这个基础上再去重构,就可实现各种复杂的功能,和我们想要实现的功能.

简单的实现一个绘图小程序:

首先我们展开自动构架的mfc项目的资源文件,双击.rc文件打开资源视图,找到Menu目录下的IDR_前缀的文件,双击打开,进入窗口可视化设计视图:

图片.png

图片.png

图片.png

我们可以对菜单栏进行编辑,这里创建一个新的绘制菜单,并新建几个绘制功能选项.

现在我们所需要的界面设计完成了,那那么我们怎么实现其功能呢.

图片.png

通过右键,为每个选项添加事件处理程序

图片.png

我们可以在对应的view.cpp中看到对应生成的函数:

图片.png

我们直接在该类中声明所需要的变量,绘制类型,绘制起点,绘制终点.
并当监测到每个选项时,返回一个int型变量用来判断绘制类型.

通过类向导添加两个处理程序,用来检测鼠标左键按下与抬起两个事件:

图片.png

打开消息选项卡,可以找到wm_lbuttondown与wm_lbuttonup两个消息添加处理程序,然后点击编辑代码,即可进入自动生成的函数体中,编写实现代码了:

图片.png

通过一个switch多路分支语句来控制实现的方式,绘制方法具体实现,调用mfc自带函数即可.

图片.png

到此这篇关于vs2019中使用MFC构建简单windows窗口程序的文章就介绍到这了,更多相关MFC构建windows窗口程序内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C++简单又轻松建立链式二叉树流程

    C++简单又轻松建立链式二叉树流程

    二叉树的链式存储结构是指,用链表来表示一棵二叉树,即用链来指示元素的逻辑关系。通常的方法是链表中每个结点由三个域组成,数据域和左右指针域,左右指针分别用来给出该结点左孩子和右孩子所在的链结点的存储地址
    2022-06-06
  • c++ 内联函数和普通函数的区别

    c++ 内联函数和普通函数的区别

    内联函数是c++为了提高程序的运行速度做的改进,那么内联函数和普通函数的区别是什么,本文就来详细的介绍一下,感兴趣的朋友可以了解一下
    2021-05-05
  • c++下使用windows api遍历指定文件夹及其子文件夹中的文件

    c++下使用windows api遍历指定文件夹及其子文件夹中的文件

    这篇文章主要介绍了c++下使用windows api遍历指定文件夹及其子文件夹中的文件实现代码,一般都是通过c++自带的函数实现
    2021-07-07
  • C++实现LeetCode(111.二叉树的最小深度)

    C++实现LeetCode(111.二叉树的最小深度)

    这篇文章主要介绍了C++实现LeetCode(111.二叉树的最小深度),本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • C/C++中的回调用法详细讲解

    C/C++中的回调用法详细讲解

    这篇文章主要介绍了回调函数在C/C++中的重要意义及应用,回调函数通过将函数作为参数传递,实现了模块的解耦、灵活性和可扩展性,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-12-12
  • 如何使用C语言实现平衡二叉树数据结构算法

    如何使用C语言实现平衡二叉树数据结构算法

    对于判断是否为平衡二叉树而言,我们需要知道以下特性:是一个二叉树也是一个二叉排序树该树的每个结点上的(深度)左子树 - 右子树的值为平衡因子(BF(Balance Factor))该树的每一个节点的左子树和右子树的高度至多等于1(平衡因子只可能是-1,0,1)
    2021-08-08
  • Matlab实现读写txt文件数据与进制转换

    Matlab实现读写txt文件数据与进制转换

    这篇文章主要为大家详细介绍了Matlab实现读写txt文件数据与进制转换的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-12-12
  • 详解图的应用(最小生成树、拓扑排序、关键路径、最短路径)

    详解图的应用(最小生成树、拓扑排序、关键路径、最短路径)

    这篇文章主要介绍了图的应用(最小生成树、拓扑排序、关键路径、最短路径),需要的朋友可以参考下
    2015-08-08
  • C++ Sqlite3的使用方法

    C++ Sqlite3的使用方法

    这篇文章主要介绍了C++ Sqlite3的使用方法,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-06-06
  • C语言关键字union的定义和使用详解

    C语言关键字union的定义和使用详解

    这篇文章主要介绍了C语言关键字union的定义和使用详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02

最新评论