- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章 MFC基础知识
Windows体系及编程 王新颖 第5章 MFC基础知识 第5章 MFC基础知识 5.1 MFC概述 程序主干由WinMain和WndProc两个函数构成,WinMain是Windows程序的入口函数,通常在该函数中注册、创建窗口,建立消息循环。当收到消息后调用WndProc进行处理(由系统实现的间接调用)。 在WndProc中,需要针对不同的消息(用户操作鼠标、点击菜单、按键、系统消息等)作出相应的处理。 程序员应对数以千计的Windows API函数 5.1 MFC概述 MFC帮助我们将繁多的API整合起来,利用面向对象原理,将其逻辑地组织起来,具备封装、继承、多态、模块化特点。 将API编程中的众多的“一成不变”的内容隐藏在MFC类中,如WinMain、注册窗口、创建窗口等操作。 使用众多精妙的宏和消息映射机制,大大简化程序员的工作,增强代码模块化。 配合集成开发环境:AppWizard、ClassWizard、资源编辑器,提高编程效率 5.1 MFC概述 VC提供应用程序向导AppWizard,能快速生成应用程序框架,框架集成了几个相互作用的类。 MFC已经建立了对象与对象之间的关系,设定了消息的流动程序。当要为应用程序设计一个应用功能时,不必要知道使用者如何按键、如何点击鼠标,只要注意按键之后真正要做的功能即可。 MFC带来面向对象程序设计的观念和方法,并使我们能继承这些优秀工程技术人员的成果来开发自己所需要的程序。 5.1 MFC概述 API编程模式:程序结构清晰,从WinMain开始,注册窗口类、创建窗口、建立消息循环、窗口过程等,程序的流程比较清晰。 MFC程序设计:高门槛 隐藏(封装)了程序运行的基本过程,不理解 众多的类及相互关系 大量的宏及消息映射机制 框架的约束 MFC6.0中引进了新的功能: 提出了活动文档容器来管理不同类型的文档,并通过引入类COleDocObjectItem来加以实现。同时在应用程序向导中也加入了对这一新特性的支持。 加入了对动态HTML技术的支持,通过引入一个新类CHtmlView,使程序员开发的应用程序可以浏览并显示用动态HTML技术开发的HTML文档。类CHtmlView中封装了许多浏览器的特征,包括浏览器在历史记录、书签和安全等方面的特征都被封装进了类CHtmlView。 扩展了对公共控件的支持,如时间控键、IP地址控键和日期控键等。 5.2 MFC类的组织结构及主要的类的简介 5.2.1 MFC类的组织结构 5.2.2 根类--CObject 5.2.3应用程序体系结构类 在CWinApp中定义的部分函数的功能有时也可以通过MFC提供的全局函数来实现,这些全局函数一般都以Afx为前缀。 例如调用AfxMessageBox函数将弹出一个消息框,其功能与CWinApp中的DoMessageBox相同。AfxMessageBox原型如下: int AfxMessageBox ( LPCTSTR lpszText, UINT nType = MB_OK, UINT nIDHelp = 0 ) 5.2.4 可视对象类 5.2.5 通用类 CException的派生类如下。 CNotSupportedException:不支持服务异常 CMemoryException:内存异常 CFileException:文件异常 CResourceException:资源异常 COleException:OLE异常 CArchiveException:档案异常 CDaoException:基于DAO的数据库类异常 CDBException:数据库类异常 CUserException:终端用户操作异常 产生异常的原因描述将储存在异常对象的m_cause数据成员中。 例如CArchiveException 类的m_cause数据成员的可能值如下: badClass:不能读错误对象类型中的内容 badIndex:无效文件格式 badSchema:无效对象版本 endOfFile:到达文件尾 Generic:不明异常 None:无异常 readOnly:试图向只读文件进行写操作 writeOnly:试图向只写文件进行读操作 5.2.6 OLE类 5.2.7 ODBC数据库类 CRecordView:由CFormView派生,该类将记录集对象连接到显示当前记录的字段值的一个表单视图来简化操作。 CFieldExchange:提供上下文信息,支持在字段数据成员、记录对象的参数数据成员及数据源上的对应列表之间进行数据交换 CLongBinary:封装一存储句柄,用于存储二进制的对象,例如位图等 CDBException:记录数据存取处理过程中的失败产生的
文档评论(0)