MFC Windows应用程序设计 第3章 MFC应用程序框架_第1页
MFC Windows应用程序设计 第3章 MFC应用程序框架_第2页
MFC Windows应用程序设计 第3章 MFC应用程序框架_第3页
MFC Windows应用程序设计 第3章 MFC应用程序框架_第4页
MFC Windows应用程序设计 第3章 MFC应用程序框架_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、MFC Windows应用程序设计应用程序设计第第3章章 MFC 应用程序框架应用程序框架MFC类类3.1最简单的最简单的MFC程序实例程序实例3.2 应用程序的文档应用程序的文档/视图结构视图结构3.33.1MFC类类1987-Win16(16位Windows操作系统)API,在此基础上推出了Windows GUI(图形用户界面)。1992-应用程序框架产品AFX(Application Frameworks)-MFC产品。MFC类的基本层次结构如图1所示。3.1MFC类类图图1 MFC类的基本层次结构类的基本层次结构CCmdTargetCWndCDocumentCFrameWndCObje

2、ctCWinTreadCWinAppCViewCDialog及控件3.1MFC类类CObject类是MFC提供的绝大多数类的基类。该类完成动态空间的分配与回收,支持一般诊断、出错信息处理和文档序列化等。CCmdTargetCWndCDocumentCFrameWndCObjectCWinTreadCWinAppCViewCDialog及控件图图1 MFC类的基本层次结构类的基本层次结构3.1MFC类类图图1 MFC类的基本层次结构类的基本层次结构CCmdTargetCWndCDocumentCFrameWndCObjectCWinTreadCWinAppCViewCDialog及控件CCmdT

3、arget类主要负责将系统事件(消息)和窗口事件(消息)发送给响应这些事件的对象,完成消息发送、等待和派遣(调度)等工作,实现应用程序的对象之间协调运行。3.1 MFC类类图图1 MFC类的基本层次结构类的基本层次结构CCmdTargetCWndCDocumentCFrameWndCObjectCWinTreadCWinAppCViewCDialog及控件CWinThread类用来完成对线程的控制,包括线程的创建、运行、终止和挂起等。3.1 MFC类类图图1 MFC类的基本层次结构类的基本层次结构CCmdTargetCWndCDocumentCFrameWndCObjectCWinTreadC

4、WinAppCViewCDialog及控件CWinApp类是应用程序的主线程类,它是从CWinThread类派生而来。3.1 MFC类类CDocument类是文档类,包含了应用程序在运行期间所用到的数据。CCmdTargetCWndCDocumentCFrameWndCObjectCWinTreadCWinAppCViewCDialog及控件图图1 MFC类的基本层次结构类的基本层次结构3.1 MFC类类图图1 MFC类的基本层次结构类的基本层次结构CCmdTargetCWndCDocumentCFrameWndCObjectCWinTreadCWinAppCViewCDialog及控件CWn

5、d类是一个通用的窗口类,用来提供Windows 中的所有通用特性、对话框和控件。3.1 MFC类类图图1 MFC类的基本层次结构类的基本层次结构CCmdTargetCWndCDocumentCFrameWndCObjectCWinTreadCWinAppCViewCDialog及控件CFrameWnd 类是从 CWnd 继承来的,并实现了标准的框架应用程序。3.1 MFC类类图图1 MFC类的基本层次结构类的基本层次结构CCmdTargetCWndCDocumentCFrameWndCObjectCWinTreadCWinAppCViewCDialog及控件CView 是用于让用户通过窗口来访

6、问文档。3.1 MFC类类图图1 MFC类的基本层次结构类的基本层次结构CCmdTargetCWndCDocumentCFrameWndCObjectCWinTreadCWinAppCViewCDialog及控件CDialog 类用来控制对话框窗口。3.2 最简单的最简单的MFC程序实例程序实例3.2 最简单的最简单的MFC程序实例程序实例AFXAPI AfxWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)ASSERT(hPrevInstance=NULL);int nRe

7、turnCode=-1;CWinThread *pThread=AfxGetThread();CWinApp *pApp=AfxGetApp();if(!AfxWinInit(hInstance, hPrevInstance, lpCmdLine,nCmdShow)goto InitFailure;3.2 最简单的最简单的MFC程序实例程序实例if(pApp!=NULL&!pApp-InitApplication()goto InitFailure;if(!pThread-InitInstance()if(pThread-m_pMainWnd !=NULL)TRACE0(Warning

8、 :Destroying non-NULL m_pMianWndn);pThread-m_pMainWnd -DestroyWindow();nReturnCode=pThread-ExitInstance();goto InitFailure;nReturnCode=pThread-Run ();InitFailure;#ifdef _DEBUGif(AfxGetModuleThreadState()-m_nTempMapLock!=0)TRACE1(Warning:Temp map lock count non-zero(%ld).n,AfxGetModuleThreadState() -

9、m_nTempMapLock);AfxLockTempMaps();AfxUnlockTempMaps(-1);#endifAfxWinTerm();return nReturnCode;3.3 应用程序的文档和视图结构应用程序的文档和视图结构用MFC设计的Windows应用程序几乎都采用文档/视图结构,主要是将应用程序主窗口对象拆分成窗口框架类CFrameWnd对象、视图类CView对象和文档类CDocument对象。3.3 应用程序的文档和视图结构应用程序的文档和视图结构MFC把早期窗口类的功能分解成3个部分:数据存储、管理部分,数据显示与用户交互部分,管理窗口框的大小、标题、菜单条、状态

10、条的窗框部分。分别对应三个类文档类CDocument、视图类CView和窗口框架类CFrameWnd。3.3 应用程序的文档和视图结构应用程序的文档和视图结构文档模板类对象用来统一创建管理文档类对象、视图类对象和主窗口框架类对象,使他们能够形成一个相互配合、相互协调的实体。3.3 应用程序的文档和视图结构应用程序的文档和视图结构应用程序类:其对象作为上述各类对象的容器,并实现应用程序的初始化和消息循环。3.3 应用程序的文档和视图结构应用程序的文档和视图结构应用程序类:其对象作为上述各类对象的容器,并实现应用程序的初始化和消息循环。类型类型含义含义.cpp(C Plus Plus),.hC+文

11、件,文件,C+头文件头文件.opt关于开发环境的参数文件,如工具条位置等信息关于开发环境的参数文件,如工具条位置等信息.aps(AppStudio File)资源辅助文件,二进制格式资源辅助文件,二进制格式.clwClassWizard信息文件信息文件.dsp(DeveloperStudio Project)项目文件项目文件.dsw(DeveloperStudio Workspace) 项目工作区文件项目工作区文件.plg编译信息文件编译信息文件.hpj(Help Project)帮助文件项目帮助文件项目.mdp(Microsoft DevStudio Project)旧版本的项目文件旧版本的

12、项目文件.bsc浏览信息文件浏览信息文件.map执行文件的映像信息纪录文件执行文件的映像信息纪录文件.pch(Pre-Compiled File)预编译文件,可以加快编译速度,但是文件非常大预编译文件,可以加快编译速度,但是文件非常大.pdb(Program Database)记录程序有关的一些数据和调试信息记录程序有关的一些数据和调试信息.exp记录记录DLL文件中的一些信息,只有在编译文件中的一些信息,只有在编译DLL才会生成才会生成.ncb无编译浏览文件无编译浏览文件(no compile browser) 除了上述文件外,还有相应的Debug(调试)或Release(发行)、Res(资源)等子文件夹。例如上述创建的单文档应用程序项目Ex_SDI,其各文件的组织如图2.14所示。当

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论