MFC-Windows应用程序设计-第3章-MFC应用程序框架

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

MFCWindows应用程序设计第3章MFC应用程序框架MFC类3.1最简单的MFC程序实例3.2应用程序的文档/视图结构3.33.1MFC类1987-----Win16(16位Windows操作系统)API,在此基础上推出了WindowsGUI(图形用户界面)。1992-----应用程序框架产品AFX(ApplicationFrameworks)--------MFC产品。MFC类的基本层次结构如图1所示。3.1MFC类图1MFC类的基本层次结构CCmdTargetCWndCDocumentCFrameWndCObjectCWinTreadCWinAppCViewCDialog及控件3.1MFC类CObject类是MFC提供的绝大多数类的基类。该类完成动态空间的分配与回收,支持一般诊断、出错信息处理和文档序列化等。CCmdTargetCWndCDocumentCFrameWndCObjectCWinTreadCWinAppCViewCDialog及控件图1MFC类的基本层次结构3.1MFC类图1MFC类的基本层次结构CCmdTargetCWndCDocumentCFrameWndCObjectCWinTreadCWinAppCViewCDialog及控件CCmdTarget类主要负责将系统事件(消息)和窗口事件(消息)发送给响应这些事件的对象,完成消息发送、等待和派遣(调度)等工作,实现应用程序的对象之间协调运行。3.1MFC类图1MFC类的基本层次结构CCmdTargetCWndCDocumentCFrameWndCObjectCWinTreadCWinAppCViewCDialog及控件CWinThread类用来完成对线程的控制,包括线程的创建、运行、终止和挂起等。3.1MFC类图1MFC类的基本层次结构CCmdTargetCWndCDocumentCFrameWndCObjectCWinTreadCWinAppCViewCDialog及控件CWinApp类是应用程序的主线程类,它是从CWinThread类派生而来。3.1MFC类CDocument类是文档类,包含了应用程序在运行期间所用到的数据。CCmdTargetCWndCDocumentCFrameWndCObjectCWinTreadCWinAppCViewCDialog及控件图1MFC类的基本层次结构3.1MFC类图1MFC类的基本层次结构CCmdTargetCWndCDocumentCFrameWndCObjectCWinTreadCWinAppCViewCDialog及控件CWnd类是一个通用的窗口类,用来提供Windows中的所有通用特性、对话框和控件。3.1MFC类图1MFC类的基本层次结构CCmdTargetCWndCDocumentCFrameWndCObjectCWinTreadCWinAppCViewCDialog及控件CFrameWnd类是从CWnd继承来的,并实现了标准的框架应用程序。3.1MFC类图1MFC类的基本层次结构CCmdTargetCWndCDocumentCFrameWndCObjectCWinTreadCWinAppCViewCDialog及控件CView是用于让用户通过窗口来访问文档。3.1MFC类图1MFC类的基本层次结构CCmdTargetCWndCDocumentCFrameWndCObjectCWinTreadCWinAppCViewCDialog及控件CDialog类用来控制对话框窗口。3.2最简单的MFC程序实例3.2最简单的MFC程序实例AFXAPIAfxWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,LPTSTRlpCmdLine,intnCmdShow){ASSERT(hPrevInstance==NULL);intnReturnCode=-1;CWinThread*pThread=AfxGetThread();CWinApp*pApp=AfxGetApp();if(!AfxWinInit(hInstance,hPrevInstance,lpCmdLine,nCmdShow))gotoInitFailure;3.2最简单的MFC程序实例if(pApp!=NULL&&!pApp-InitApplication())gotoInitFailure;if(!pThread-InitInstance()){if(pThread-m_pMainWnd!=NULL){TRACE0(Warning:Destroyingnon-NULLm_pMianWnd\n);pThread-m_pMainWnd-DestroyWindow();}nReturnCode=pThread-ExitInstance();gotoInitFailure;}nReturnCode=pThread-Run();InitFailure;#ifdef_DEBUGif(AfxGetModuleThreadState()-m_nTempMapLock!=0){TRACE1(Warning:Tempmaplockcountnon-zero(%ld).\n,AfxGetModuleThreadState()-m_nTempMapLock);}AfxLockTempMaps();AfxUnlockTempMaps(-1);#endifAfxWinTerm();returnnReturnCode;}3.3应用程序的文档和视图结构用MFC设计的Windows应用程序几乎都采用文档/视图结构,主要是将应用程序主窗口对象拆分成窗口框架类CFrameWnd对象、视图类CView对象和文档类CDocument对象。3.3应用程序的文档和视图结构MFC把早期窗口类的功能分解成3个部分:数据存储、管理部分,数据显示与用户交互部分,管理窗口框的大小、标题、菜单条、状态条的窗框部分。分别对应三个类文档类CDocument、视图类CView和窗口框架类CFrameWnd。3.3应用程序的文档和视图结构文档模板类对象用来统一创建管理文档类对象、视图类对象和主窗口框架类对象,使他们能够形成一个相互配合、相互协调的实体。3.3应用程序的文档和视图结构应用程序类:其对象作为上述各类对象的容器,并实现应用程序的初始化和消息循环。3.3应用程序的文档和视图结构应用程序类:其对象作为上述各类对象的容器,并实现应用程序的初始化和消息循环。类型含义.cpp(CPlusPlus),.hC++文件,C++头文件.opt关于开发环境的参数文件,如工具条位置等信息.aps(AppStudioFile)资源辅助文件,二进制格式.clwClassWizard信息文件.dsp(DeveloperStudioProject)项目文件.dsw(DeveloperStudioWorkspace)项目工作区文件.plg编译信息文件.hpj(HelpProject)帮助文件项目.mdp(MicrosoftDevStudioProject)旧版本的项目文件.bsc浏览信息文件.map执行文件的映像信息纪录文件.pch(Pre-CompiledFile)预编译文件,可以加快编译速度,但是文件非常大.pdb(ProgramDatabase)记录程序有关的一些数据和调试信息.exp记录DLL文件中的一些信息,只有在编译DLL才会生成.ncb无编译浏览文件(nocompilebrowser)除了上述文件外,还有相应的Debug(调试)或Release(发行)、Res(资源)等子文件夹。例如上述创建的单文档应用程序项目Ex_SDI,其各文件的组织如图2.14所示。当然,不同类型的项目的文件类型及数目会略有所不同。Ex_SDI文件夹Debug或Release文件夹Res文件夹类文件.cpp,.h资源文件Ex_SDI.rc项目及项目工作区文件其他文件编连过程产生的文件运行文件Ex_SDI.exe图标文件Ex_SDI.ico等工具栏资源Toolbar.bmp其他资源Ex_SDI.rc2等图2.14Ex_SDI项目管理

1 / 24
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功