第一范文网 - 专业文章范例文档资料分享平台

3_第三章 MFC应用程序框架

来源:用户分享 时间:2021-06-02 本文由月色黯然 分享 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

第三章 MFC应用程序框架 MFC应用程序框架3.1 3.2 3.3 3.4 基于MFC的窗口程序 的窗口程序 基于 MFC应用程序框架与 应用程序框架与Win32程序 应用程序框架与 程序 MFC应用程序框架的基本类 应用程序框架的基本类 基本类对象之间的相互访问

基于MFC的窗口程序(1) MFC的窗口程序 3.1 基于MFC的窗口程序(1)OLE: Object Linking and Embedding WOSA: Windows Open System Architecture AppWizard文件: 文件: 文件 – 工作区文件:*.dsw 工作区文件: – 项目文件:*.dsp 项目文件: – 类信息文件:*.clw 类信息文件: – 应用程序源文件:*.cpp 应用程序源文件: – 应用程序头文件:*.h 应用程序头文件: – 资源文件:*.rc, resource.h, *.rc2 资源文件: – 预编译头文件:stdAfx.cpp ,stdAfx.h 预编译头文件:

基于MFC的窗口程序(2) MFC的窗口程序 3.1 基于MFC的窗口程序(2)AppWizard生成的基本类: 生成的基本类: 生成的基本类 类名称C*App CMainFrame C *Doc C *View

基类CWinApp CFrameWnd CDocument CView *.h

头文件Mainfrm.h *Doc.h *View.h

源文件*.cpp Mainfrm.cpp *Doc.h.cpp *View..cpp

C*App:应用程序类,负责程序的初始化和结束处理。 :应用程序类,负责程序的初始化和结束处理。 CMainFrame : 主窗口类,负责主窗口的创建、显示和消息派发。 主窗口类,负责主窗口的创建、显示和消息派发。 C *Doc :文档类,负责应用程序的数据存储、修改和管理。 文档类,负责应用程序的数据存储、修改和管理。 C *View :视图类,负责为数据的显示和修改提供人机界面。 视图类,负责为数据的显示和修改提供人机界面。

基于MFC的窗口程序(3) MFC的窗口程序 3.1 基于MFC的窗口程序(3)设置应用程序环境参数 – 链接库文件(静态链接库和动态链接库)方法: 链接库文件(静态链接库和动态链接库)方法:在文件中包含库函数声明。 在文件中包含库函数声明。 把对应的库文件( 把对应的库文件(*.lib)加入项目。 )加入项目。 对动态链接库,将对应的DLL文件(*.dll)放在系 文件( 对动态链接库,将对应的 文件 ) 统目录或当前目录下。 统目录或当前目录下。

– 设置库文件(MFC库和 SDK库)生成 设置库文件( 库和 库 生成MAKE文 文 件Windows C Rumtime函数库 函数库 DLL Import函数库 函数库 MFC Import函数库 函数库

基于MFC的窗口程序(4) MFC的窗口程序 3.1 基于MFC的窗口程序(4)设置应用程序环境参数 – 引用正确的头文件: 引用正确的头文件:Stdafx.h:预编译头文件 预编译头文件 Afxwin.h:声明所有 声明所有MFC类 声明所有 类 Afxext.h:声明工具栏和状态栏等窗口特征 声明工具栏和状态栏等窗口特征 Afxdlgs.h:声明通用型对话框的 声明通用型对话框的

MFC类 声明通用型对话框的 类 Afxcmn.h:声明 声明Windows 9X新增的通用控件类 声明 新增的通用控件类 Afxcoll.h:声明集合类 声明集合类 Afxtempl.h:声明模板集合类 声明模板集合类 Afxdllx.h:声明可制作 声明可制作MFC的扩展 的扩展DLL 声明可制作 的扩展 Afxres.h:声明 声明MFC的标准资源 声明 的标准资源

基于MFC的窗口程序(5) MFC的窗口程序 3.1 基于MFC的窗口程序(5)VC集成开发工具与应用程序生成步骤: 集成开发工具与应用程序生成步骤: 集成开发工具与应用程序生成步骤 – 利用 的AppWizard生成新项目。 利用VC的 生成新项目。 生成新项目 – VC集成编辑器可以编辑源文件,用 集成编辑器可以编辑源文件, 集成编辑器可以编辑源文件 ClassWizard编辑 编辑C++类,在资源编辑器修改 编辑 类 资源文件。 资源文件。 – 源文件经过编译生成 源文件经过编译生成*.OBJ文件,资源文件经 文件, 文件 过编译生成*.RES文件。链接器将各个*.OBJ、 过编译生成 文件。链接器将各个 、 文件 *RES和库文件结合起来,生成可执行文件。 和库文件结合起来, 和库文件结合起来 生成可执行文件。

MFC应用程序生成过程 MFC应用程序生成过程IDE(集成编辑器 集成编辑器) VC IDE(集成编辑器) App Wizard

源文件 .DEF .CPP .H .DSP .DSW .ICO

资源文件 .DLG .BMP

ClassWizard

C/C++编译器 C/C++编译器

资源编辑器

资源编译器

.OBJ .LIB (C Rumtime,

.RES

链接器(Linker) 链接器(Linker) DLL Import) .EXE

MFC应用程序与Win32程序 应用程序与Win32程序( 3.2 MFC应用程序与Win32程序(1)Windows程序的基本结构(回忆第二章内容)。 程序的基本结构(回忆第二章内容)。 程序的基本结构 MFC类对 类对WinMain和WndProc的封装。 的封装。 类对 和 的封装 (P81图3.14和P86图3.15) 图 和 图 ) – CWinApp:封装了 封装了WinMain函数的功能 封装了 函数的功能应用程序启动 消息循环启动 程序结束

– CFrameWnd:封装了 封装了WndProc函数的功能 封装了 函数的功能窗口创建 消息处理 窗口销毁

MFC应用程序与Win32程序 应用程序与Win32程序( 3.2 MFC应用程序与Win32程序(2)MFC应用程序的启动流程(P88图3.16) 应用程序的启动流程( 应用程序的启动流程 图 ) –全局主函数AfxWinMain():启动应用程序 全局主函数AfxWinMain() 全局主函数AfxWinMain(): –C*App::InitInstance() :创建窗口对象和主窗口,视 C*App::InitInstance() 创建窗口对象和主窗口, 图对象和视图窗口,以及文档对象。 图对象和视图窗口,以及文档对象。动态创建对象(见第八章)。 动态创建对象(见第八章)。 文档模板类管理动态创建信息。 文档模板类管理动态创建信息。 CCommandLineInfo类对象保存程

序启动时的命令行信息。 类对象保存程序启动时的命令行信息。 类对象保存程序启动时的命令行信息 ParseCommandLine()分解命令行信息,填写程序启动标志。 分解命令行信息, 分解命令行信息 填写程序启动标志。 ProcessShellCommand()根据命令行信息,启动不同的任务。 根据命令行信息, 根据命令行信息 启动不同的任务。 创建“三个对象,两个窗口”的流程( 创建“三个对象,两个窗口”的流程(P92图3.17和P93图 图 和 图 3.18) ) 窗口的显示和更新

–C*App::Run() :调用间接基类CWinThread::Run()读取 C*App::Run() 调用间接基类CWinThread::Run() CWinThread::Run()读取 消息队列,并启动消息循环。 消息队列,并启动消息循环。

MFC应用程序框架的基本类 应用程序框架的基本类( 3.3 MFC应用程序框架的基本类(1)1. MFC类体系的三大基类: 类体系的三大基类: 类体系的三大基类 根类CObject具有动态性、诊断性和持续性 具有动态性、 根类 具有动态性 三大特性。从CObject派生的类,具有在程 三大特性。 派生的类, 派生的类 序运行时,获得对象大小和类名的能力。 序运行时,获得对象大小和类名的能力。 详见第八章) (详见第八章) 派生的类, 从CCmdTarget派生的类,具有在程序运行 派生的类 动态创建对象和处理命令消息的能力。 时,动态创建对象和处理命令消息的能力。 派生的类可以拥有自己的窗口, 从CWnd派生的类可以拥有自己的窗口,并 派生的类可以拥有自己的窗口 能对它进行控制的能力。 能对它进行控制的能力。

搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新初中教育3_第三章 MFC应用程序框架全文阅读和word下载服务。

3_第三章 MFC应用程序框架.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/wenku/1204286.html(转载请注明文章来源)
热门推荐
Copyright © 2018-2022 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top