MFC编程入门精讲

article/2025/11/6 16:50:18

MFC(Microsoft Foundation Classes,Microsoft基本类)是一组预定义的类,封装了Windows API,对Windows编程来说是一种面向对象的方法。

  • 所有使用MFC类的名称都已C开始,如CView。

1、简单的MFC程序

1.1 添加包括afxwin.h头文件的#include语句,因为该文件包含了许多MFC类的定义。

         #include<afxwin.h>

1.2 派生两个类:应用程序类和窗口类

(1)应用程序类:CWinApp 类

该类对象包括启动、初始化、运行和关闭应用程序所需要的一切代码,所以需要根据CWinApp派生自己的类,从而得到自己的应用程序。

class COurApp: public CWinApp
{
public:virtual BOOL InitInstance() override;
};

(2)窗口类:CFrameWnd类

MFC应用程序需要一个窗口做为与用户交互的界面,称为框架窗口。所以需要从类CFrameWind中派生一个窗口类。

class COurWnd: public CFrameWnd
{public:// ConstructorCOurWnd(){Create(nullptr, _T("Our Dumb MFC Application"));}
};

(3)为应用程序定义过窗口类之后,就可以编写COurApp类中的InitInstance()函数

BOOL COurApp::InitInstance(void)
{m_pMainWnd = new COurWnd;              m_pMainWnd->ShowWindow(m_nCmdShow);    return TRUE;
}

1.3 最终的产品

#include <afxwin.h>                       // For the class library// Application class definition
class COurApp: public CWinApp
{
public:virtual BOOL InitInstance() override;
};// Window class definition
class COurWnd: public CFrameWnd
{public:// ConstructorCOurWnd(){Create(nullptr, _T("Our Easy MFC Application"));}
};// Function to create an instance of the main application window
BOOL COurApp::InitInstance(void)
{m_pMainWnd = new COurWnd;               // Construct a window object...m_pMainWnd->ShowWindow(m_nCmdShow);     // ...and display itreturn TRUE;
}// Application object definition at global scope
COurApp AnApplication;                    // Define an application object

2、使用MFC编写Windows程序

2.1 MFC中的基本概念

  • 文档:文档是应用程序中与用户交互的数据集合。文档不仅仅局限于文本,是各种数据的集合。程序中的文档是作为文档类的对象定义的。文档类是从MFC库中的CDocument类派生的,需要添加数据成员来存储应用程序需要的数据,还要添加成员函数来支持对数据的处理。
  • 视图:视图是提供一种机制来显示文档对象包含数据的部分或全部数据。
  • 文档模板:使文档、视图和框架窗口之间相互协作。
  • MFC应用程序中4个基本类:应用程序类(CMyApp)、框架窗口类(CMyWnd)、视图类(CMy)、文档类(CMyDoc)

2.2 创建MFC应用程序

2.2.1 使用VS2017创建MFC程序

(1)选中MFC应用程序

(2)应用程序类型

选项介绍:

  • 单文档:每次只需要打开一个文档的程序,应用程序窗口是对话窗口,不是框架窗口
  • 多个顶层文档:文档显示在桌面的子窗口中
  • 文档视图支持:该选项是默认选中的,得到内置的支持代码;如果取消选中,需要编程人员自己负责编写

(3)文档模板属性

 

设计程序要创建的文件的扩展名,过滤器名称则是在Open和Save As对话框中出现的过滤器的名称,可以使列表只显示扩展名为.txt的文件。

 (4)生成的类

 2.3 分析程序生成的类

常用的资源分析选项卡:资源管理器、类视图、资源视图

关键类:应用程序类(App)、框架窗口类(CMainFrame)、文档类(Doc)、视图类(View)

 2.4 结束

可以把该应用程序的操作归结为4个步骤:
(1)创建应用程序对象theApp。
(2)执行MFC提供的WinMain()函数。
(3)WinMainO调用InitInstance0函数,此函数创建文档模板、主框架窗口、文档和视图。
(4)WinMain()调用Run()函数,此函数执行主消息循环,以获取和分派Windows消息。


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

相关文章

第三课——MFC编程

一、MFC概述 1. MFC简述 MFC不仅仅是一套基础类库&#xff0c;更是一种编程方式。 2. MFC由来 1987年微软公司推出了第一代Windows产品&#xff0c;并为应用程序设计者提供了Win16&#xff08;16位Windows操作系统&#xff09;API&#xff0c;在此基础上推出了Windows GUI&…

MFC编程入门

一、 什么是MFC&#xff1f; 如果你要建立一个Windows应用程序&#xff0c;应该如何下手&#xff1f; 好的开端是从设计用户界面开始。 首先&#xff0c;你要决定什么样的用户能使用该程序并根据需要来设置相应的用户界面对象。Windows用户界面有一些标准的控件&#xff0c;如按…

MFC最详细入门教程[转载]

本人在学习MFC的过程中&#xff0c;发现下面这个比较好的教程&#xff0c;这边转载记录一下 原文地址&#xff1a;MFC 最详细入门教程 From&#xff1a;https://blog.csdn.net/wang18323834864/article/details/78621633/ Visual Studio 2019&#xff1a;https://visualstudio.…

XAMPP详细安装教程

XAMPP安装教程 打开XAMPP安装包 等待安装完成 打开安装好的XAMPP 出现这种问题之后&#xff0c;我直接采用修改Apache端口号的方法 修改完Apache之后点击start运行MySQL&#xff0c;结果一直没开启成功&#xff0c;一直显示框框中的语句。百度几篇文章的结果就是找到regedit.e…

xampp使用教程方法免费分享

XAMPP是一个把Apache网页服务器与PHP、Perl及MySQL集合在一起的安装包&#xff0c;允许用户可以在自己的电脑上轻易的建立网页服务器。使用XAMPP您可以轻松的在本机调试您的PHP程序、CMS以及wordpress博客程序。本文主要分享一下XAMPP的使用教程。 XAMPP使用方法 1.下载XAMPP …

怎样在xampp中使用mysql以及配置xampp

怎样在xampp中使用mysql 以及配置xampp &#xff08;这里是在xampp中安装mysql的&#xff09; 第一步&#xff1a;安装xampp 找到xampp的安装包&#xff0c;双击下载&#xff1a; 我是安装在C盘的 安装好后&#xff0c;就会有下面页面 点 第二步&#xff1a;配置xampp&…

XAMPP汉化教程指南

xampp是一款新手学习PHP必备的软件&#xff0c;但是这款软件对于国人来说不太友好&#xff0c;因为他的控制面板界面只有英文和德文。 怎么汉化xampp xampp虽然好用&#xff0c;功能也比较简单&#xff0c;按钮功能好记&#xff0c;但是整个控制面板都是英文或者德文&#xf…

PHP 开发-XAMPP 安装

开发环境&#xff1a;Windows10&#xff0c;XAMPP&#xff08;x64-7.4.33&#xff09;&#xff0c;Netbeans。 XAMPP 安装 官网下载XAMPP安装包&#xff0c;我下载的版本 x64-7.4.33。安装包中相关软件版本&#xff08;官网上可查询&#xff09;&#xff1a; Apache 2.4.54M…

XAMPP安装和使用教程

最近由于某些情况&#xff0c;转入对PHP进行探讨&#xff0c;比较晚啦&#xff0c;呵呵&#xff01; 由于php在windows下配置虽不是很烦&#xff0c;但也难免出现误差&#xff0c;觉得集成工具也不错。下面把XAMPP的安装和使用教程转帖过来&#xff0c;以备我以后查阅。 XAMPP…

在xampp 中使用mysql的方法

法一、打开xampp 控制面板&#xff0c;启动mysql&#xff0c;然后打开shell,输入 mysql 即可 这里说一下最近碰到的问题&#xff1a;当我输入 mysql 的时候出错&#xff1a; Error Code: 1044. Access denied for user localhost to database mydb 原因&#xff1a;存在一个用…

xampp安装

XAMPP&#xff08;ApacheMySQLPHPPERL&#xff09;是一个功能强大的建站集成软件包&#xff0c; 是一个易于安装且包含 MySQL、PHP 和 Perl 的 Apache 发行版。小编在安装MySQL的路上不断碰壁&#xff0c;虽然是越挫越勇&#xff0c;但是&#xff0c;一旦挫太多次了也就没有那份…

XAMPP 使用教程

XAMPP 使用教程 文章目录 XAMPP 使用教程1.启动XAMPP。2.在Apache上点击start。3.访问http://localhonst&#xff0c;出现页面。 1.启动XAMPP。 2.在Apache上点击start。 3.访问http://localhonst&#xff0c;出现页面。 这说明你已经成功开启了本地服务器。&#xff08;在使用…

mac安装xampp及使用攻略

前言&#xff1a;最近接了一个商城的项目&#xff0c;后端要用到thinkphp6&#xff0c;听老板说很简单的框架&#xff0c;果断上手&#xff0c;不过在配置环境上&#xff0c;mac和windows差距很大&#xff0c;有很多坑&#xff0c;不过我已经一路踩过来了&#xff0c;建议喜欢的…

最详细的XAMPP的安装及使用教程(图文)

XAMPP的安装及使用教程 1、简介 XAMPP&#xff08;ApacheMySQLPHPPERL&#xff09;是一个功能强大的建站集成软件包。这个软件包原来的名字是 LAMPP&#xff0c;但是为了避免误解&#xff0c;最新的几个版本就改名为 XAMPP 了。它可以在Windows、Linux、Solaris、Mac OS X 等多…

XAMPP和MYSQL使用

1.下载 XAMPP 首先下载 XAMPP &#xff0c;您可以在本页面下方提供的链接直接点入官方网站下载。 2.安装 XAMPP 园子使用的是 XAMPP 的 Windows 版的安装包&#xff0c;下载后直接安装即可&#xff0c;安装过程所有选项保持默认即可。建议不要直接装在 C 盘。安装过程结束后&…

Xampp介绍、安装过程及使用方法

XAMPP&#xff08;ApacheMySQLPHPPERL&#xff09;是一个功能强大的建站集成软件包。 阅读一些资料&#xff0c;先整理如下&#xff1a; 软件介绍&#xff1a;http://baike.baidu.com/link?urlAGB3fqEAfvAKDp9ZpI-buHSS5A9bldAWbQbFP9C8_suyZgd5lSt68WgnUT4F6tn4nf5YhL144MMIp…

XAMPP安装教程

XAMPP 安装教程 文章目录 XAMPP 安装教程一、前往官网,下载二、安装OK. XAMPP是最流行的PHP开发环境 XAMPP是完全免费且易于安装的Apache发行版&#xff0c;其中包含MariaDB、PHP和Perl。XAMPP开放源码包的设置让安装和使用出奇容易。它可以构造一个本地服务器。 一、前往官网,…

XAMPP保姆级的安装及使用教程(图文)

一、简介 XAMPP&#xff08;ApacheMySQLPHPPERL&#xff09;是一个功能强大的建站集成软件包。这个软件包原来的名字是 LAMPP&#xff0c;但是为了避免误解&#xff0c;最新的几个版本就改名为 XAMPP 了。它可以在Windows、Linux、Solaris、Mac OS X 等多种操作系统下安装使用…

XAMPP安装配置教程(Windows)

1.下载官方安装包 https://www.apachefriends.org/zh_cn/index.html 2.安装XAMPP 安装前关闭所有杀毒软件&#xff1b; 安装xampp自带mysql无需再安装&#xff1b; 安装到合适的安装路径&#xff1b; 3.启动XAMPP 如果顺利start Apache和MySQL都没问题恭喜你基本完成。 adm…

最新xampp安装教程与配置

XAMPP安装并配置 XAMPP这个集成软件包之前并没有了解过&#xff0c;为了完成软件质量保证与测试的实验在此踩坑。需要实验报告的朋友们能免费下载。缺陷管理工具Mantis安装及使用 鉴于我们还不知道XAMPP是干什么的我们简单了解一下&#xff1a; 了解XAMPP: XAMPP&#xff08…