1、MFC介绍及环境搭建

MFC全程为Microsoft Foundation class Library,即微软的基本类库,MFC实际上是一个庞大的文件库,它由指向文件和源文件组成。

  首先,打开visual2017,进行如下操作:

  此时,会发现新建项目中无法找到创建MFC工程

   这是因为没有配置MFC开发环境,关闭visual studio打开visual studio installer

  选择修改,可以打开如下窗口

  勾选后,点击修改,此时就进入了安装界面,这里需要等待15分钟左右

2、利用向导生成MFC应用程序

 

 修改完成后,点击启动,新建项目可以看到MFC已经添加到了visual studio了

  点进MFC后,选择文件路径,创建项目名文件名后点击确定 既可以进入MFC应用程序的类型配置界面

应用程序类型:

单文件:为应用程序创建一个单文档界面(SDI)结构。在此类应用程序中,文档的框架窗只能容纳一个文档。

多文件:为应用程序创建一个多文档界面(MDI)结构。在此类应用程序中,文档的框架窗可以容纳多个文档。

选项卡式文档:将每个文档放置到单独的选项卡上。

基于对话框:为应用程序创建一个基于对话框的结构。

使用HTML对话框:只适用与对话框应用程序。从CDHtmlDialogClass(而不是CDialogClass)派生对话框类。

多个顶级文档:为应用程序创建一个多顶级结构。在此类应用程序中,当单击【文件】菜单上的【新建】时。应用程序会创建一个其父窗口隐式为桌面的窗口。新的文档框架会显示在任务栏中,并且不局限于应用程序窗口的工作区。

然后单击【生成】->【生成解决方案】

单击【调试】->【开始执行】

运行完成后

打开项目所在文件夹->Debug文件夹,可以看到生成的.exe文件

双击.exe文件可以看到运行结果。

3、项目的文件组织

1、解决方案和项目文件

  通过调试后,解决方案的文件夹下包含:.sdf文件、.sln文件、.suo文件和.ipch文件夹。.sdf文件和ipch文件夹与智能提示、代码恢复、团队本地仓库等有关。.sln文件和.suo文件为MFC自动生成解决方案文件,它们包含当前解决方案中的项目信息,存储解决方案的设置。

  项目相关文件包括项目文件夹下的.vcxproj文件和.vcxproj.filters文件。.vcxproj文件是MFC生成的项目文件,包含当前项目的设置和项目所包含的文件等信息。.vcxproj .filters文件存放项目的虚拟目录信息,也就是在解决方案浏览器中的目录结构信息,如图所示:

2、应用程序源文件和头文件

  应用程序向导会根据应用程序的类型(单文档、多文档或基于对话框的程序)自动生成一些头文件和源文件。如图所示。

3、资源文件

  一般使用MFC生成程序都会有对话框、图标、菜单等资源,应用程序向导会生成资源相关文件:res目录、*.rc文件和Resource文件。

  res目录:项目文件夹下的res文件夹中含有应用程序默认图标、工具栏使用的图标等图标文件。

  *.rc:包含默认菜单定义、字符串表和加速键表,指定了默认的About对话框和应用程序默认图标文件等。

  Resource.h:含有各种资源的ID定义。

4、利用向导生成基于对话框的应用程序

  

运行结果如下:

visual2017专业版MFC编程环境搭建及第一个MFC程序的创建的更多相关文章

  1. Cesium入门2 - Cesium环境搭建及第一个示例程序

    Cesium入门2 - Cesium环境搭建及第一个示例程序 Cesium中文网:http://cesiumcn.org/ | 国内快速访问:http://cesium.coinidea.com/ 验 ...

  2. ArcGIS API for JavaScript开发环境搭建及第一个实例demo

    原文:ArcGIS API for JavaScript开发环境搭建及第一个实例demo ESRI公司截止到目前已经发布了最新的ArcGIS Server for JavaScript API v3. ...

  3. scala 入门Eclipse环境搭建及第一个入门经典程序HelloWorld

    scala 入门Eclipse环境搭建及第一个入门经典程序HelloWorld 学习了: http://blog.csdn.net/wangmuming/article/details/3407911 ...

  4. Vue环境搭建及第一个helloWorld

    Vue环境搭建及第一个helloWorld 一.环境搭建 1.node.js环境安装配置  https://www.cnblogs.com/liuqiyun/p/8133904.html 或者 htt ...

  5. 使用IDEA写Python之pytest环境搭建及第一个程序编写

    一.准备篇 Python环境:3.8.3 开发工具:IDEA,对你没有看错 二.IDEA下安装开发环境 1. python的下载 https://www.python.org/downloads/ P ...

  6. SpringBoot环境搭建及第一个程序运行(详细!)

    spring boot简介 spring boot框架抛弃了繁琐的xml配置过程,采用大量的默认配置简化我们的开发过程. 所以采用Spring boot可以非常容易和快速地创建基于Spring 框架的 ...

  7. FFmpeg 开发环境搭建及第一个程序 Hello FFmpeg 编写

    1. FFmpeg 的安装 ./configure make make install 默认会将 FFmpeg 安装至 /usr/local 目录下(可通过 configure 使用 "-p ...

  8. go语言开发环境安装及第一个go程序

    下载Go语言开发包 大家可以在Go语言官网(https://golang.google.cn/dl/)下载 Windows 系统下的Go语言开发包,如下图所示. 安装Go语言开发包 双击我们下载好的G ...

  9. android 串口开发第一篇:搭建ndk开发环境以及第一个jni调用程序

    一:ndk环境搭建 1:开发环境 我使用的是android studio 2.3.3版本,搭建ndk开发环境比较简单,打开File----Settings----Appearance&Beha ...

随机推荐

  1. Mybatis调用数据库的存储过程和方法

     转载. https://blog.csdn.net/ml0228123/article/details/81002258   上次的项目,要求我用java代码调用存储过程,折腾了好久.最后总算成功了 ...

  2. [Oracle,2018-02-07] Oracle 报错:“ORA-02292:违反完整约束条件(XXX.FKXXX)

    报错的原因很清楚,就是你要删除的记录是另外某条记录的外键,解决办法: 1.删除子记录,在删除本记录: 2.暂时禁用此外键(适合在测试后清除所有记录的情况,记得最后要恢复此外键) 解决办法有了,现在最主 ...

  3. android 开发 View _14 MotionEvent和事件处理详解,与实践自定义滑动条View

    转载https://blog.csdn.net/huaxun66/article/details/52352469 MotionEvent MotionEvent对象是与用户触摸相关的时间序列,该序列 ...

  4. win10 安装 oracle 11g

    在安装文件的/stage/cvu文件夹下面找到文件 cvu_prereq.xml文件 64位添加红色部分 32位添加蓝色部分   ............... </OPERATING_SYST ...

  5. mybatis泛型(一)

    mybatis的确很方便,可以随意配置sql语句,并根据参数生成指定的sql,也可以根据查询结果生成指定对象 但是有一点非常恐怖,就是每个数据库表都必须有一个配置,等于在一个系统里做了很多重复的工作, ...

  6. 在delphi中XLSReadWriteII.组件的应用实例(2)

    第三方组件:XLSReadWriteII.v.5.20.67_XE3 实例源码如下:   unit Unit1; interface uses Winapi.Windows, Winapi.Messa ...

  7. 牛客网-乌龟跑步-(四维dfs)

    链接:https://ac.nowcoder.com/acm/problem/15294来源:牛客网 题目描述 有一只乌龟,初始在0的位置向右跑. 这只乌龟会依次接到一串指令,指令T表示向后转,指令F ...

  8. ajax----tomact服务器运行

    一.菜鸟教程的代码本地运行 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...

  9. MFC笔记2

    1.Create()函数创建,该函数原型如下: BOOL Create( LPCTSTR lpszCaption, DWORD dwStyle, const RECT& rect, CWnd* ...

  10. Collection中的方法

    以ArrayList为例 package com.mydemo; import java.util.ArrayList; public class CollectionDemo { public st ...