第2讲-MFC应用程序框架及文档视图架构.ppt

第2讲-MFC应用程序框架及文档视图架构.ppt

ID:61772152

大小:181.00 KB

页数:38页

时间:2021-03-19

第2讲-MFC应用程序框架及文档视图架构.ppt_第1页
第2讲-MFC应用程序框架及文档视图架构.ppt_第2页
第2讲-MFC应用程序框架及文档视图架构.ppt_第3页
第2讲-MFC应用程序框架及文档视图架构.ppt_第4页
第2讲-MFC应用程序框架及文档视图架构.ppt_第5页
资源描述:

《第2讲-MFC应用程序框架及文档视图架构.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第2讲MFC程序框架及文档视图架构1MFC简介Windows编程的基本方式Windows编程语言VCVBVJ都是“面向对象”的程序设计语言核心要素窗口菜单控件对话框程序模块主要特征:具有规范形态和操作模式编程模式传统编写法—>API交互式方法—>MFC2API(ApplicationProgrammingInterface)是由Windows操作系统提供的函数定义、参数定义和消息格式的集合,用于提供给应用程序使用MFC(MicrosoftFoundationClass)微软基础类库封装了大量API函数提供了图形环境下的程序设计框架,使程序设计过程更有效率,更符合面向对象的精神

2、简化了Windows程序设计3MFC应用程序框架什么是MFC应用程序框架提供了一般应用程序需要的全部面向对象软件组件的集成集合好处是C++的WindowsAPI标准结构的专业化的程序,面向对象思维运行速度快降低编码复杂性,代码重用,良好工具支持4理解MFC应用程序WinMain在哪?程序如何开始执行?WindowProcedure在哪?窗口如何运行?RegisterClass和CreateWindow在哪?窗口如何创建?MessageLoop(GetMessage和DispatchMessage)在哪?程序如何运转?5MFC程序结构基于框架窗口的应用程序(早期的MFC)程序运

3、行管理、窗口及数据管理分开两部分,与SDK程序类似基于文档/视图的应用程序单文档应用程序(重点)程序运行管理、窗口管理、交互管理、数据管理分开多文档应用程序基于对话框的应用程序程序运行管理、对话框管理分开6MFC程序的文档/视图结构早期MFC应用程序用应用程序类实现应用程序的初始化、消息循环、终止;用窗口框架类管理窗口,包括数据管理、显示、与用户交互等目前的MFC应用程序都采用文档/视图结构,把原来窗口框架类的工作分开窗口框架类管理窗框视图类(即视窗类)管理数据显示、接收用户输入文档类负责数据管理7使用文档/视窗结构的好处将数据操作与数据显示分开,可以简化工作量一组数据可以同

4、时以不同的形式显示在多个视窗中窗框类、视窗类、文档类之间的关系窗框类相当于窗户的窗框视窗类相当于窗户上的玻璃文档类相当于房间中的物品在房间外边可以透过玻璃看到室内部分物品房间可以有多个窗户,可以从不同角度透过不同窗户看到室内同一物品8文档视图架构的思想数据嵌入文档中,利用文档的架构管理文档与视图通信,使数据在视图中显示视图显示数据,并与用户交互视图放入窗口中文档模板类对象管理上述对象协调工作9MFC程序中主要的类(基于文档)MFC把程序中的数据、函数都封装在若干个类中应用程序类CWinApp及其派生类封装了Windows应用程序初始化、运行、终止应用程序的代码应用程序中不再出

5、现WinMain函数,其功能被封装在CWinApp类的成员函数中消息的响应则采用消息响应机制来实现窗口边框类CFrameWnd及其派生类管理应用程序的边框窗口,包括窗框的大小、标题、菜单条、状态条等部分。(工具栏不属于框架窗口,而是框架窗口的子窗口,但由框架类管理)视窗CView类及其派生类管理应用程序窗口中显示数据的部分(用户区)负责各种数据的显示、与用户的交互等工作文档类CDocument及其派生类管理应用程序中的数据,如存储、修改等10CWinApp---WinMain---程序启动程序启动步骤生成theApp对象WinMainAfxWinMainCMySDIApp::

6、InitInstance创建窗口对象显示并重绘窗口执行Run,并进入消息循环11BOOLCMySDIApp::InitInstance(){AfxEnableControlContainer();//支持ActiveX#ifdef_AFXDLLEnable3dControls();//CallthiswhenusingMFCinasharedDLL#elseEnable3dControlsStatic();//CallthiswhenlinkingtoMFCstatically#endif//注册到注册表:HKEY_CURRENT_USERSoftware//suchast

7、henameofyourcompanyororganization.SetRegistryKey(_T("LocalAppWizard-GeneratedApplications"));//LoadstandardINIfileoptions(includingMRU)LoadStdProfileSettings();//动态生成,返回对象指针//类支持动态生成,必须有//DECLARE_DYNCREATE(CMainFrame)//IMPLEMENT_DYNCREATE(CMainFrame,CFra

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

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

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