欢迎来到天天文库
浏览记录
ID:37562794
大小:376.31 KB
页数:25页
时间:2019-05-12
《软件开发与实践——概述》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、软件开发与实践长春理工大学韩成计算科学技术学院Email:hchwork@sina.com办公室电话:85583332考试成绩平时成绩(30%)期末考试成绩(70%)考试方式平时成绩:平时出勤情况课堂测验情况实验课成绩考试成绩:期末考试概述软件开发与实践基本内容什么是MFCMFC程序运行过程MFC类概述MFC的消息映射机制学习MFC的方法一、什么是MFCWindows操作系统采用了图形用户界面,借助于它提供的API(ApplicationProgrammingInterface)函数,用户可以编出具有漂亮图形界面的程序。VC++的微软基础类库(
2、MicrosoftFoundationClassLibrary,MFC)封装了大部分API函数,并提供了一个应用程序框架,简化和标准化了Windows程序设计。一、什么是MFC1、应用程序框架MFC是一种称为应用程序框架的软件的组成部分。要理解应用程序框架,就要回顾一下用C语言编写Windows应用程序的全过程。首先要编写一个含有WinMain()的源代码模块,还要编写初始化应用程序的代码,接下来是消息循环,其次是注册窗口类(使用RegisterClass())。在应用程序中,要创建一个大的switch语句,其中的case语句来对应每个要处理的
3、消息。所以在这些基本程序中要花费大量的时间,还要记住很多规则。例如使用CreateBitmap()创建一个位图,用DeleteObject()来取消它,而且必须保证WM_PAINT代码中成对地使用BeginPaint()和EndPaint()从而不至于使Windows出现混乱。上述这些工作,正是应用程序框架要做的事情。使用它,将避免每次都去重新编写重复的代码。MFC主要组成部分:类、宏和全局函数。类是MFC中最主要的内容。MFC类是以层次结构方式组织起来的。MFC中的类分成两部分,除了一些辅助类,大多数的MFC类是直接或间接从根类CObject
4、派生而来。几乎每一个派生层次都与一具体的Windows实例相对应,如文档类、窗口类和视图类等。MFC宏主要功能:消息映射、运行时对象类型服务、诊断服务、异常处理。MFC约定:全局函数以“Afx”为前缀,全局变量以“afx”为前缀。2、MFC体系结构面向对象的windows编程接口繁琐的windowsAPI编程面向对象的MFC编程“站在巨人肩膀上”编程标准化的应用程序框架(ApplicationFramework)3、MFC的主要作用举例:一个简单的应用程序创建过程:在VisualC++6.0的启动界面中,选择“File|New”,在弹出的“Ne
5、w”对话框中单击“Projects”选项卡。选择“MFCAppWizard(exe)”,在“Location”编辑框中输入要建立的工程所在的目录。在右上方的“Projectname”编辑框中输入工程名称Eg2_1,单击OK按钮,弹出MFCAppWizard向导对话框。在第一步中选择Singledocument,建立一个单文档界面应用程序SDI。取其默认值,直到第六步结束。二、MFC程序运行过程初始化全局变量入口函数得到应用程序对象指针全局初始化函数应用程序初始化生成并显示窗口消息循环三、MFC类概述MFC约有200个类,提供了Windows应用
6、程序框架和创建应用程序的组件。其中只有5个核心类对应用程序框架有影响:CWinApp,CDocument,CView,CFrameWnd和CDocTemplate。五个之中只有CWinApp是必不可少的类,CWinApp的对象在应用程序中必须有一个,也只有一个,并是一个全局对象,它建立了应用程序执行的主线程。三、MFC类概述MFC是采用单一继承,从根类Cobject层层派生出绝大多数MFC中的类,其层次结构是最典型。参见下图四、MFC消息处理机制MFC消息映射机制将消息与消息处理函数联系起来,形成一一对应的机制。消息映射宏声明:DECLARE_
7、MESSAGE_MAP定义:BEGIN_MESSAGE_MAPON_COMMANDON_CONTROLON_MESSAGEEND_MESSAGE_MAPWindows的三类消息窗口消息(WM_XXX)只能由窗口或视图对象处理,即派生自CWnd命令消息(WM_COMMAND)由CCmdTarget派生的类都能处理该消息控件通知消息由控件向其父窗口发送WM_COMMAND消息宏名称对应消息消息处理函数ON_WM_CHARWM_CHAROnCharON_WM_CLOSEWM_CLOSEOnCloseON_WM_CREATEWM_CREATEOnCre
8、ateON_WM_DESTROYWM_DESTROYOnDestroyON_WM_LBUTTONDOWNWM_LBUTTONDOWNOnLButton
此文档下载收益归作者所有