MFC应用程序框架

合集下载

基于MFC的桌面应用程序开发与优化

基于MFC的桌面应用程序开发与优化

基于MFC的桌面应用程序开发与优化一、引言随着计算机技术的不断发展,桌面应用程序在日常生活和工作中扮演着越来越重要的角色。

MFC(Microsoft Foundation Class)作为Windows平台下的经典桌面应用程序开发框架,具有丰富的功能和强大的扩展性,被广泛应用于各种领域。

本文将重点探讨基于MFC的桌面应用程序开发与优化,旨在帮助开发人员更好地利用MFC框架构建高效、稳定的桌面应用程序。

二、MFC框架概述MFC是微软公司提供的一套C++类库,旨在简化Windows应用程序的开发过程。

通过MFC,开发人员可以快速构建具有丰富用户界面和功能的桌面应用程序。

MFC提供了诸多类和函数,涵盖了窗口管理、消息处理、控件设计等方方面面,为开发人员提供了强大的工具箱。

三、MFC应用程序的创建在开始开发基于MFC的桌面应用程序之前,首先需要创建一个MFC应用程序项目。

在Visual Studio中,选择“新建项目”->“Visual C++”->“MFC应用程序”,按照向导指引完成项目创建过程。

在创建项目时,可以选择不同类型的应用程序模板,如单文档应用程序、多文档应用程序等,根据实际需求选择合适的模板。

四、MFC应用程序开发实践1. 界面设计MFC提供了丰富的控件库,开发人员可以通过拖拽控件到对话框上的方式快速设计用户界面。

在设计界面时,需要考虑用户体验和美观性,合理布局各个控件,并确保界面风格统一。

2. 事件处理事件处理是MFC应用程序开发中至关重要的一环。

通过响应用户操作或系统消息,触发相应事件并执行相应操作。

在MFC中,可以通过消息映射表和消息处理函数来实现事件处理,确保应用程序能够正确响应用户操作。

3. 数据处理对于需要处理数据的桌面应用程序,数据处理是不可或缺的部分。

MFC提供了数据库支持和文件操作等功能,可以方便地进行数据读写操作。

开发人员需要合理设计数据结构和数据流程,确保数据的准确性和完整性。

VC++6.0使用MFC创建应用程序框架操作步骤

VC++6.0使用MFC创建应用程序框架操作步骤

图 为套接字类添加响应消息的事件处理成员函数
(3)为套接字类添加一般的成员函数和成员变量 •在VC++的界面中,在工作区窗口选择ClassView卡,用右键 单 击 CMySocket 类 , 会 弹 出 快 捷 菜 单 , 选 择 其 中 的 Add Member Function 可 以 为 该 类 添 加 成 员 函 数 ; 选 择 Add Member Variable可以为该类添加成员变量。
m_listRecetved
Control
CListBox
定义了一个枚举变量IDD,值 , 定义了一个枚举变量 为IDD_TALKC_DIALOG。 。 这个对话框类就是通过这个 IDD和对话框资源建立了联系。 和对话框资源建立了联系。 和对话框资源建立了联系
CTalkcDlg类的 类的 构造函数
类CMySocket的定义 的定义
CMySocket的构造函数 的构造函数 CMySocket的析构函数 的析构函数
(2)利用类向导ClassWizard为这个套接字类添加 响应消息的事件处理成员函数。 •点菜单View/ClassWizard...,进入类向导对话框, 选择Message Maps(消息映射)卡,确认Class name是CMySocket,从Messages(消息)栏中选 择事件消息,然后点击Add Function按钮,就会看 到在Member Function栏中添加了相应的事件处理 函数。 •如图所示,此程序中需要添加OnConnect, OnClose和OnReceive三个函数。这一步会在 CMySocket类的MySocket.h中自动生成这些函数的 声明,在MySocket.cpp中生成这些函数的框架,以 及消息映射的相关代码。可参看后面的程序清单。

基于MFC的应用程序框架分析幻灯片PPT

基于MFC的应用程序框架分析幻灯片PPT
由基类CDocument派生,文档类负责存放程序 数据并读取磁盘文件数据,或将磁盘文件数 据写入磁盘文件中。 比如在建立一个图形系统时,存储图形的数 据结构等都是放在文档类中的。
2、视图类
视图类是由CView类派生的,它负责显示文档 类的数据,可以显示在屏幕上,也可以输出 在打印机和其他设备上。在屏幕上,这个类 管理客户窗口。 例:在实现一个图形系统时,屏幕上显示、 打印机绘图的工作都是由视图类完成的。
基于MFC的应用程序框架分析幻 灯片PPT
本PPT课件仅供大家学习使用 请学习完及时删除处理 谢谢!
一、什么是MFC?
1、概述 微软基础类库(MFC:Microsoft Foundation Class)
是微软为Windows程序员提供的一个面向对象的 Windows编程接口,它大大简化了Windows编程工作。 使用MFC类库的好处是:首先,MFC提供了一个标准化 的结构,这样开发人员不必从头设计创建和管理一个 标准Windows应用程序所需的程序,而是“站在巨人 肩膀上”,从一个比较高的起点编程,故节省了大量 的时间;其次,它提供了大量的代码,指导用户编程 时实现某些技术和功能。 2、MFC类库的概念及组成 (1) 类库是一个可以在应用中使用的相互关联的C++类 的集合。
化.如果失败,则调用应用类的ExitInstance ()函数,转至5)。 4)调用应用类的Run()函数,其功能主要是 进行消息循环,
不断获取消息和处理消息。一直到用户关闭应用程序的窗口, 产生WM_QUIT消息,调用ExitInstance ()函数,准备退出。
5)进行应用程序的收尾工作,比如删除注册 的窗口类等。 6)返回。
CDrawView* pView=(CDrawView *)GetActiveView( ); 3、获得应用类对象的指针 例:CDrawApp* pWinApp=(CDrawApp*)AfxGetApp(); 4、从应用类对象中获得主框架类对象的指针

使用MFC进行可视化编程

使用MFC进行可视化编程

使用MFC进行可视化编程
MFC(Microsoft Foundation Classes,微软基础类)是一个C++图形用户界面(GUI)应用程序编程框架,它主要用于开发Windows应用程序。

MFC是微软的一个可视化编程框架,由C++构成,以C++为基础实现可视化编程。

MFC的主要功能是抽象出Windows平台的GUI底层,减少编程者使用Windows API的繁琐程度,使应用程序的开发更加容易。

MFC提供了许多可视化的功能来帮助开发者开发Windows应用程序,它主要由以下几个部分组成:
(1)基础框架:MFC建立在Windows API基础上,它封装了许多Windows系统函数,使得使用者不需要编写复杂的Windows基础函数就可以实现可视化的界面。

(2)界面控件:MFC提供了大量的界面控件,可以让开发者快速实现可视化编程,如按钮、对话框、工具栏、菜单栏等,而且还提供了自定义控件的功能,可以让开发者自定义控件来满足特定业务的需求。

(3)图像处理:MFC提供大量的图像处理的API函数,可以实现图像的显示、缩放、旋转、裁剪等功能,而且支持大量的图像格式,可以满足大多数应用的需求。

(4)网络访问:MFC提供了网络访问的接口,可以实现基于HTTP协议的网络访问,实现网络编程,而且支持多种数据格式,可以轻松实现网络应用的开发。

MFC概述

MFC概述

1.MFC概述1.MFC是一个编程框架MFC (Microsoft Foundation Class Library)中的各种类结合起来构成了一个应用程序框架,它的目的就是让程序员在此基础上来建立Windows下的应用程序,这是一种相对SDK来说更为简单的方法。

因为总体上,MFC框架定义了应用程序的轮廓,并提供了用户接口的标准实现方法,程序员所要做的就是通过预定义的接口把具体应用程序特有的东西填入这个轮廓。

Microsoft Visual C++提供了相应的工具来完成这个工作:AppWizard可以用来生成初步的框架文件(代码和资源等);资源编辑器用于帮助直观地设计用户接口;ClassWizard用来协助添加代码到框架文件;最后,编译,则通过类库实现了应用程序特定的逻辑。

1.封装构成MFC框架的是MFC类库。

MFC类库是C++类库。

这些类或者封装了Win32应用程序编程接口,或者封装了应用程序的概念,或者封装了OLE特性,或者封装了ODBC和DAO数据访问的功能,等等,分述如下。

(1)对Win32应用程序编程接口的封装用一个C++ Object来包装一个Windows Object。

例如:classCWnd是一个C++ window object,它把Windows window(HWND)和Windows window有关的API函数封装在C++ windowobject的成员函数内,后者的成员变量m_hWnd就是前者的窗口句柄。

(2)对应用程序概念的封装使用SDK编写Windows应用程序时,总要定义窗口过程,登记Windows Class,创建窗口,等等。

MFC把许多类似的处理封装起来,替程序员完成这些工作。

另外,MFC提出了以文档-视图为中心的编程模式,MFC类库封装了对它的支持。

文档是用户操作的数据对象,视图是数据操作的窗口,用户通过它处理、查看数据。

(3)对COM/OLE特性的封装OLE建立在COM模型之上,由于支持OLE的应用程序必须实现一系列的接口(Interface),因而相当繁琐。

VS2020和MFC编程入门之2(利用MFC向导生成单文档应用程序框架)

VS2020和MFC编程入门之2(利用MFC向导生成单文档应用程序框架)

VS2020/MFC编程入门之二(利用MFC向导生成单文档应用程序框架)这里给大伙儿一个简单的例子,演示如何生成单文档应用程序框架。

解决方案与工程在VS2020的利用介绍中已经讲了解决方案与工程的概念,那个地址再重提一下。

每一个应用程序都作为一个工程来处置,它包括了头文件、源文件和资源文件等,这些文件通过工程集中治理。

在VS2020中,工程都是在解决方案治理之下的。

一个解决方案能够治理多个工程,能够把解决方案明白得为多个有关系或没有关系的工程的集合。

VS2020提供了一个Solution Explorer解决方案阅读器视图,能够显示当前解决方案的内容,当新建一个工程时能够选择新建一个解决方案仍是加入当前解决方案。

以下图左侧面板中正在显示的视图确实是Solution Explorer,视图中有一个解决方案-HelloWorld,此解决方案下有一个同名的工程-HelloWorld。

在应用程序向导生成应用程序后,VS2020会在用户设置的途径下,以解决方案名为名称成立一个目录,里面寄存自动生成的文件。

利用VS2020应用程序向导生成单文档应用程序框架那个地址简略演示下如何生成单文档应用程序框架,让大伙儿先有个直观的了解,有不睬解的地址能够留着以后回来再看。

下面依照操作步骤一步步讲解:1.点菜单栏File->New->Project,弹出New Project对话框,咱们能够选择工程类型。

若是安装完VS2020以后第一启动时已经设置为VC++,那么Installed Templates->Visual C++项会默许展开,而若是没有设置VC++,那么能够展开到Installed Templates->Other Languages->Visual C++项。

因为咱们要生成的是MFC程序,因此在“Visual C++”下选择“MFC”,对话框中间区域会显现三个选项:MFC ActiveX Control、MFC Application和MFC DLL。

MFC中文档视图框架和文档模板之间的关系 四个类常用的成员函数

MFC中文档视图框架和文档模板之间的关系  四个类常用的成员函数

文档对象:是用来保存数据的。

视图对象:是用来显示和编辑数据的。

应用程序框架:框架是用来管理不同文档显示界面的。

例如你有一个数据网格显示界面,还有一个图形显示界面,它们的数据可能都来自你的文档,但是视图不同,怎么办用框架。

为什么不用视图?为的是把界面管理独立的拿出来。

文档模板:MFC把文档/视图/框架视为一体,只要你创建文档/视图框架结构的程序,必定会为你创建这三个类。

这个工作在在应用程序初始化时完成,如下:[cpp]view plaincopy1.BOOL CMyHtmlApp::InitInstance()2.{3. CSingleDocTemplate* pDocTemplate;4. pDocTemplate = new CSingleDocTemplate(5. IDR_MAINFRAME,6. RUNTIME_CLASS(CMyHtmlDoc),7. RUNTIME_CLASS(CMainFrame), // main SDI frame window8. RUNTIME_CLASS(CMyHtmlView));9. AddDocTemplate(pDocTemplate);10. }单文档:就是一次只能打开一个文件,和你的文档类型支持的多少无关。

你完全可以做一个单文档的支持所有图象格式的程序,只不过它一次只能打开一个文档罢了。

多文档:就是你可以打开多个文件,和文档类型也无关。

你也可以作一个可以同时打开多个文档的程序,但它只支持一种文档类型。

何时需要文档/视图框架结构?首先你可以不使用文档视图这种框架结构,即便是在MFC中。

你可以在你需要的时候选择使用这种方式。

你可以完成一个只有视图没有文档的程序,例如一个基于对话框的应用。

哪什么时候需要呢?当你想将你的数据层和界面层分开的时候。

通常我们对数据的操作放在文档类中,例如存取,打开,关闭。

在这里你可以尽情的对你的数据进行操作,如果你需要,在对数据进行了改变后,对视图做一下更新,那么程序会将你对数据所做的改变呈现给你的程序的用户。

mfc工作原理

mfc工作原理

mfc工作原理MFC(Microsoft Foundation Classes)是微软公司开发的一套用于Windows操作系统的应用程序框架,它在C++语言的基础上封装了一些常用的图形用户界面(GUI)功能,简化了Windows应用程序的开发过程。

本文将围绕MFC的工作原理展开阐述。

MFC的工作原理主要包括以下几个方面:1. 类库结构:MFC是一个面向对象的类库,它由一系列C++类组成。

这些类封装了Windows API的功能,提供了一种更加便捷的方式来创建和管理Windows应用程序。

MFC的类库结构包含了一些基本的类,如CObject、CWnd和CFrameWnd等,以及一些用于界面设计的类,如CButton、CEdit和CListBox等。

2. 消息映射机制:在MFC中,窗口类派生自CWnd类,通过消息映射机制来处理用户输入、系统消息等事件。

当用户操作窗口时,例如点击按钮、拖动滚动条等,系统会生成相应的消息,MFC会将这些消息映射到窗口类的成员函数上进行处理。

开发者只需重载对应的成员函数,就可以实现自定义的响应逻辑。

3. 对话框和控件:MFC提供了对话框和控件的封装,使得开发者可以方便地创建和管理用户界面。

对话框是一个独立的窗口,可以包含各种控件,如按钮、文本框、列表框等。

开发者可以使用MFC 提供的类来创建和设置对话框及其控件,通过消息映射机制来处理用户操作。

4. 文档视图模型(Document-View模式):MFC采用了文档视图模型来处理应用程序的数据和界面显示。

开发者可以通过MFC提供的类来创建文档类和视图类,文档类用于管理应用程序的数据,视图类用于显示和编辑数据。

MFC会自动处理文档和视图之间的关联,使得数据的修改能够实时反映到界面上。

5. 消息循环:MFC应用程序在启动后会进入一个消息循环,不断地接收和处理消息。

消息循环负责分发消息,并将消息传递给对应的窗口类进行处理。

MFC提供了一个消息映射表,用于将消息和相应的处理函数关联起来。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、 Windows应用程序概述 2、 MFC应用程序框架
3 、 MFC应用程序的执行过程
4、 MFC消息映射与消息处理
1 、 Windows应用程序概述
Windows 是一个多进程的图形窗口操作系统, Windows 应用程序运行于 Windows 操作系统上, 与DOS应用程序有着本质的区别。
2015/10/15
1 、 Windows应用程序概述
例Li1: 一个简单的Windows应用程序
(1)选择“文件”“新建”菜单命令,显示出“新建”对话框。单 击“工程”标签,从列表框中选中Win32 Application (Win32 应用 程序)项。
单击
工程名
输入
保存文件路径
2015/10/15

• • •
2015/10/15
2 、 MFC应用程序框架
【例 2.】编写一个 SDI 单文档应用程序 Li2_1 ,程序运行后, 通过消息框输出“这是一个单文档应用程序!”的提示信息。
(1) 选择File菜单下的New菜单项,系统弹出New对话框。
单击 工程名 输入
保存文件路径
默认
2015/10/15
2 、 MFC应用程序框架
(2) MFC AppWizard-Step 1 对话框主要用于选择应用程序 类型。AppWizard可以创建3种类型的应用程序框架。
单文档界面(SDI)应用 程序。应用程序运行时, 只能打开一个文档。
多文档界面(MDI)应用 程序。应用程序可以同 时打开多个文档。 是否支持 文档/视图 结构 语言种类
2015/10/15
2 、 MFC应用程序框架
MFC应用程序框架:
尽管每个应用程序具体实现的功能不同,但同一类程序的
基本结构是相同的,有很多相同的源代码,因此可以通过 一个应用程序框架 AFX ( Application FrameWorks )编写
同一类型应用程序的通用源代码。
MFC不仅仅是一个类库,它还提供了一层建立在MFC类对象 封装上的附加应用程序框架。应用程序框架是为了生成一
• Windows API函数定义在一些DLL动态链接库中,其中最主 要的DLL是User32.dll、Gdi32.dll和Kernel32.dll三个库 文件。
• API函数是应用程序与Windows系统交互的唯一途径。
2015/10/15
1 、 Windows应用程序概述
SDK(Software Development Kit )编程: SDK 提供了一整套开发 Windows 应用程序所需的相关文 件、范例和工具的“工具包”。 SDK 包含了使用 API 的必需资料,所以人们也常把仅使 用 API 来编写 Windows 应用程序的开发方式叫做“SDK 编程”。 应用程序的结构比较清晰,但程序员必须编写所有的功能 代码。
2015/10/15
1 、 Windows应用程序概述
MFC编程: 编程时我们就可以利用 MFC 中类的可重用性和可扩充性, 大大降低 Windows 应用程序设计的难度和工作量 , 采用 MFC 方式编程提高了Windows应用程序的开发效率。 但由于MFC应用程序结构的复杂性,要想完全掌握MFC应用 程序的内部机制需要付出很大的努力。
2015/10/15
2 、 MFC应用程序框架
(7) 在 MFC AppWizard-Step 6 of 6 对话框中,可以设 置向导生成的文件名和类名。
设置类名
设置文件名
2015/10/15
2 、 MFC应用程序框架
(8) 打 开 项 目 工 作 区 中 的 ClassView 类 视 图 , 单 击 CLi2_1View 类 左 边 的 “ +” 展 开 视 图 类 , 双 击 打 开 OnDraw()函数,并添加代码。
DOS 应 用 程 序 采 用 顺 序 执 行 过 程 , 而 Windows 是一个基于事件的消息 (Message) 驱 动系统,消息处理是所有 Windows 应用程序 的核心。
2015/10/15
1 、 Windows应用程序概述 Windows 应用程序是按照“事件→消息→处 理”非顺序的机制运行。 当有某个事件(如单击鼠标、键盘输入和执 行菜单命令等)发生时,Windows会根据具体的事 件产生对应的消息,并发送到指定应用程序的消 息队列;应用程序从消息队列中取出消息,并根 据不同的消息进行不同的处理。
2015/10/15
2 、 MFC应用程序框架
VC++通过向导(Wizard) 创建应用程序框架 MFC 程序设计人员
应用程序框架
API函数
2015/10/15
2 、 MFC应用程序框架
主要向导类型: • • • • MFC MFC MFC New ActiveX Control Wizard:创建基于MFC的ActiveX控件 AppWizard[dll]:创建基于MFC的动态链接库 AppWizard[exe]:创建基于MFC的应用程序(最常用) Database Wizard:在SQL服务器上创建一个SQL Server数 据库 Win32 Application: 创建Win32应用程序,可不使用MFC,采 用SDK方法编程 Win32 Console Application:创建DOS下的Win32控制台应用程 序,采用C++或C语言进行编程 Win32 Dynamic-link Library:创建Win32动态链接库,采用 SDK方法 Win32 Static Library:创建Win32静态链接库,采用SDK方法
基于对话框的应用程序。 应用程序将显示一个简 单的对话框来处理用户 的输入。
2015/10/15
2 、 MFC应用程序框架
(3)MFC AppWizard-Step 2 of 6 对话框中主要用于选择 应用程序所支持数据库方式。 不包含任何数据库支持
包含最低限度的数据库 支持
创建对应表的一个数据 库类和一个视图类,不 附加标准文件支持 创建对应表的一个数据 库类和一个视图类,并 附加标准文件支持
(3) 输入下面的代码:
#include <windows.h> int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { MessageBox (NULL, “你好,欢迎来到Visual C++课堂!", "问候", 0) ; return 0 ; }
2015/10/15
1 、 Windows应用程序概述
利用Windows API开发程序的用户有这样的体会,即使开 发一个简单的Windows应用程序也需要对Windows的编程原 理有很深刻的认识,需要手工编写冗长的代码。由于程序 的出错率是随着代码长度的增加呈几何级数增长的,而且 当程序长度逐渐膨胀时,调试程序会变得越来越困难。因 此,传统的Windows应用程序设计需要程序员有极大的耐 心和丰富的编程经验。
2015/10/15
1 、 Windows应用程序概述
MFC概念: 微软基础类( Microsoft Foundation Class )是一个由 Microsoft 公司设计的类库,与 Visual C++ 捆绑在一起。 类库封装了大量Windows编程需要使用的函数和数据结构。
MFC是Win API与C++的结合, MFC是微软对API函数的专用 C++封装 。
2015/10/15
1 、 Windows应用程序概述
利用Visual C++编写Windows应用程序, 可以采取几种不同的途径: • 利用 Win32应用程序接口API提供的函数,用C或C++语言 编写程序。 • 由于MFC通过类对API的绝大部分功能进行了封装,可以利 用MFC,用C++语言编写程序。 • 利用MFC和MFC AppWizard[exe]: 首先利用 MFC AppWizard[exe]应用程序向导生成基本 的应用程序框架,然后按照MFC机制和原理向框架添加具 体的应用代码。
1 、 Windows应用程序概述
(2) 再次选择“文件”“新建”菜单命令,显示出“新建”对话框。 单击“文件”标签,在左边的列表框中选择C++ Source File项,在 右边的“文件”下的编辑框中键入Ex_HelloMsg.cpp,单击[确定]按 钮。
单击
文件名
2015/10/15
1 、 Windows应用程序概述
传统风格工具条
Internet Explorer风格工具条
2015/10/15
2 、 MFC应用程序框架
(6) 在MFC AppWizard-Step 5 of 6对话框中设置应用程序 的风格。
创建标准的MFC应用程序 创建类似于Windows资源 管理器风格的应用程序 在生成的程序框架的源文 件中加入注释 不加入注释信息 使用动态链接库 使用静态链接库
2015/10/15
1 、 Windows应用程序概述
消息和事件: • 所 谓 消 息 就 是 指所发 生 的事件 的 通知 , 而 事件 是 对 于 Windows的某种操作。 事件和消息密切相关,事件是因,消息是果,事件产生消 息,消息对应事件。所谓消息的响应,其实质就是事件的 响应。 • 消息驱动是 Windows 应用程序的核心,所有的外部响应 (如键盘、鼠标和计时器等)都被 Windows 先拦截,转换 成消息后再发送到应用程序中的目标对象,应用程序根据 消息的具体内容进行处理。 消息不仅可由 Windows 发出,它也可由应用程序本身或其 它程序产生。 Windows 为每一个应用程序都维护一个或多 个消息队列,发送到每个程序窗口的消息都排成一个队列。
相关文档
最新文档