第03章 mfc应用程序框架

第03章 mfc应用程序框架

ID:5315653

大小:398.50 KB

页数:40页

时间:2017-11-23

第03章 mfc应用程序框架_第1页
第03章 mfc应用程序框架_第2页
第03章 mfc应用程序框架_第3页
第03章 mfc应用程序框架_第4页
第03章 mfc应用程序框架_第5页
资源描述:

《第03章 mfc应用程序框架》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第3章MFC应用程序框架本章主要内容:MFC的基本应用程序框架类Windows应用程序的文档/视图结构文挡/视图结构的应用程序框架类对象的动态创建MFC是一个框架(Framework)式类库,框架式类库同一般的类库的不同之处在于,库中的各个类之间是有联系的,它们是按照框架所定义的模式去协作完成任务的。所以,要学习MFC,首先就要了解各个类之间是如何协作的以及它们的接口。3.1早期的应用程序框架 及其MFC类应用程序的框架由两个对象组成:应用程序类CWinApp的派生类对象和框架窗口类CFrameWnd的派生类对象,后者作为一个成

2、员对象嵌在前者之中。3.1早期的应用程序框架 及其MFC类CObject类为其派生类提供了支持序列化、调试信息、运行期类型信息等一些通用功能这个类中封装了窗口函数封装了窗口的一些通用功能。封装了应用程序主窗口的功能3.1早期的应用程序框架 及其MFC类CObject类为其派生类提供了支持序列化、调试信息、运行期类型信息等一些通用功能这个类中封装了窗口函数封装了一些支持多任务的功能封装了应用程序的一些通用功能MFC程序的运行步骤(主要是初始化)打开一个MFCAPPWizard(exe)工程,跟踪其执行步骤,可以发现,是以下顺序:1

3、)CXXApp中的全局变量定义CXXApptheApp;2)调用CXXApp构造函数CXXApp::CXXApp(){}3)进入Winmain函数(_tWinMain为宏,值为WinMain)_tWinMain(){}4)完成初始化工作:包括窗口类注册、窗口产生、显示和更新pThread->InitInstance()对于MFC程序,MainFrame,View,ToolBar,Controlbar等都是窗口,所以下面的窗口注册与创建、显示等要反复调用多次,一次对应一个窗口(1)注册窗口类AfxEndDeferRegisterC

4、lass(2)创建窗口CMainFrame::PreCreateWindow()//反复调用一次是给我们修改窗口属性的机会CFrameWnd::Create()(3)消息循环PumpMessage()涉及到MFC函数的源文件位置根目录:找到您安装VC98下MFC的位置,比如我的机子上为:D:ProgramFilesMicrosoftVisualStudioVC98MFC。下面提供的就是相对路径了。CWinApp构造函数:MFCSRCAPPCORE.CPPAfxWinMain函数:MFCSRCWINMAIN.CPP

5、AfxEndDeferRegisterClass函数:MFCSRCAPPCORE.CPPCFrameWnd::PreCreateWindow()函数:MFCSRCWINFRM.CPPCFrameWnd::Create()函数:MFCSRCWINFRM.CPPCWnd::CreateEx()函数:MFCSRCWINCORE.CPPCWinThread::Run()方法:MFCSRCTHRDCORE.CPP3.3应用程序的文档/视图结构及其框架类classCMyApp:publicCWinAppclassCMyD

6、oc:publicCDocumentclassCMyView:publicCViewclassCMainFrame:publicCFrameWndCWnd*m_pMainWnd文档模板CMyDoc*CMyView::GetDocument()基本应用程序框架与文档/视图结构应用程序框架的对比文档类文档是一个CDocument派生对象,它负责存储应用程序的数据,并把这些信息提供给应用程序的其余部分。CDocument类对文档的建立及归档提供支持并提供了应用程序用于控制其数据的接口,一个文档可以有多个视图,每一个文档都维护一个与之相

7、关视图的链表(CptrList类型的m_viewList实例)。类CDocument中可遍历对应的视图:POSITIONCDocument::GetFirstViewPosition()constCView*CDocument::GetNextView(POSITION&rPosition)const文档与视图进行通信的方式是调用文档类的UpdateAllViews函数。UpdateAllViews函数遍历视图列表,对每个视图都调用其OnUpdate函数实现视图的更新显示。视图类CView类是所有视图类的基类,它提供了用户自定义

8、视图类的公共接口。在"文档/视图"架构中,文档负责管理和维护数据;而视图类则负责如下工作:(1)从文档类中将文档中的数据取出后显示给用户;(2)接受用户对文档中数据的编辑和修改;(3)将修改的结果反馈给文档类,由文档类将修改后的内容保存到磁盘文件中。文档负责了数

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。