当前位置首页 > 汽车/机械/制造 > 工业自动化
搜柄,搜必应! 快速导航 | 使用教程

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

文档格式:PPT| 13 页|大小 159KB|2024-12-10 发布|举报 | 版权申诉
第1页
第2页
第3页
下载文档到电脑,查找使用更方便 还剩页未读,继续阅读>>
1 / 13
此文档下载收益归作者所有 下载文档
  • 版权提示
  • 文本预览
  • 常见问题
  • 单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,3.1,基于,MFC,的窗口程序,3.2 MFC,应用程序框架与,Win32,程序,3.3 MFC,应用程序框架的基本类,3.4,基本类对象之间的相互访问,第三章,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,3.1,基于,MFC,的窗口程序,(2),AppWizard,生成的基本类:,类名称,基类,头文件,源文件,C,*App,CWinApp,*.h,*,.,cpp,CMainFrame,CFrameWnd,Mainfrm.h,Mainfrm.cpp,C,*Doc,CDocument,*,Doc.h,*,Doc.h.cpp,C,*View,CView,*,View.h,*,View.cpp,C*App,:应用程序类,负责程序的初始化和结束处理。

    CMainFrame,:,主窗口类,负责主窗口的创建、显示和消息派发C*Doc,:文档类,负责应用程序的数据存储、修改和管理C*View,:视图类,负责为数据的显示和修改提供人机界面3.1,基于,MFC,的窗口程序,(3),设置应用程序环境参数,链接库文件(静态链接库和动态链接库)方法:,在文件中包含库函数声明把对应的库文件(*,.lib,)加入项目对动态链接库,将对应的,DLL,文件(*,.,dll,)放在系统目录或当前目录下设置库文件(,MFC,库和,SDK,库)生成,MAKE,文件,Windows C,Rumtime,函数库,DLL Import,函数库,MFC Import,函数库,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,的标准资源,3.1,基于,MFC,的窗口程序,(5),VC,集成开发工具与应用程序生成步骤:,利用,VC,的,AppWizard,生成新项目。

    VC,集成编辑器可以编辑源文件,用,ClassWizard,编辑,C+,类,在资源编辑器修改资源文件源文件经过编译生成*,.OBJ,文件,资源文件经过编译生成*,.RES,文件链接器将各个*,.OBJ,、*,RES,和库文件结合起来,生成可执行文件MFC,应用程序生成过程,VC IDE(,集成编辑器,),App Wizard,源文件,.DEF,.CPP,.H,.DSP,.DSW,资源文件,.ICO,.DLG,.BMP,ClassWizard,C/C+,编译器,资源编辑器,资源编译器,.LIB,(C,Rumtime,DLL Import),.OBJ,.RES,链接器(,Linker,),.EXE,3.2 MFC,应用程序与,Win32,程序(,1,),Windows,程序的基本结构(回忆第二章内容)MFC,类对,WinMain,和,WndProc,的封装P81,图,3.14,和,P86,图,3.15,),CWinApp,:,封装了,WinMain,函数的功能,应用程序启动,消息循环启动,程序结束,CFrameWnd,:,封装了,WndProc,函数的功能,窗口创建,消息处理,窗口销毁,3.2 MFC,应用程序与,Win32,程序(,2,),MFC,应用程序的启动流程,(,P88,图,3.16,),全局主函数,AfxWinMain,(),:启动应用程序,C*,App:InitInstance,(),:创建窗口对象和主窗口,视图对象和视图窗口,以及文档对象。

    动态创建对象(见第八章)文档模板类管理动态创建信息CCommandLineInfo,类对象保存程序启动时的命令行信息ParseCommandLine,(),分解命令行信息,填写程序启动标志ProcessShellCommand,(),根据命令行信息,启动不同的任务创建“三个对象,两个窗口”的流程,(,P92,图,3.17,和,P93,图,3.18,),窗口的显示和更新,C*,App:Run,(),:调用间接基类,CWinThread:Run,(),读取消息队列,并启动消息循环3.3 MFC,应用程序框架的基本类(,1,),1.MFC,类体系的三大基类:,根类,CObject,具有动态性、诊断性和持续性三大特性从,CObject,派生的类,具有在程序运行时,获得对象大小和类名的能力详见第八章),从,CCmdTarget,派生的类,具有在程序运行时,动态创建对象和处理命令消息的能力从,CWnd,派生的类可以拥有自己的窗口,并能对它进行控制的能力3.3 MFC,应用程序框架的基本类(,2,),2.,基本类及其作用,CWinApp,:负责初始化和运行应用程序,CFrameWnd,:负责显示和搜寻用户命令,CDocument,:负责装载和维护文档,其中包括应用程序的工作成果和环境设置数据,或其它任何内容。

    CView,:负责为文档提供一个或几个视图,提供修改、查询文档的人机交互的界面3.,基本类与,SDI,、,MDI,关系,(,P100,图,3.19,和,P101,图,3.20,),3.4,基本类对象之间的相互访问,1.SDI,应用程序基本类对象之间的相互访问,(,P102,图,3.21,),2.MDI,应用程序基本类对象之间的相互访问,(,P103,图,3.22,),3.,注意事项,:,以上相互访问仅限于同一应用程序实例或同一进程中注意相互访问的函数有全局函数和类的成员函数成员函数实际上是定义在,MFC,基类中在应用程序中任何一个类对象,要访问应用程序类对象,只需调用全局函数,AfxGetApp,(),在应用程序中任何一个类对象,要访问框架窗口类对象,只需调用全局函数,AfxGetMainWnd,(),由于一个文档有多个视图窗口对应,因此从文档类访问视图类成员时,需要遍历与文档对象关联的视图链表The End,。

    点击阅读更多内容
    卖家[上传人]:dfg836519
    资质:实名认证
    相关文档
    正为您匹配相似的精品文档