第5节使用MFC类库编程.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章 使用MFC类库编程 5.1 一个使用全局对象的程序 5.2 使用MFC编制Win32 Application程序 5.3 模拟文档/视结构的MFC程序 5.4 MFC类库与编程向导AppWizard 5.5 基于对话框风格的设计实例 本章将介绍如何使用MFC类库编程,并通过一个简单的例子说明MFC的消息处理机制。 然后模拟文档/视结构编制一个程序,通过它引入使用向导和文档/视结构的概念,为学习下一章的文档/视结构打下基础。 最后给出一个基于对话框风格的实例。 5.1 一个使用全局对象的程序 在使用MFC类库编程之前,先来看一个使用全局对象的例子。 【例5.1】 使用全局对象启动程序运行。 //example.h文件 #include iostream using namespace std; class CMyApp { int x,y,z; public: CMyApp(int a=0, int b=0, int c=0):x(a),y(b),z(c) { cout″Begin...″endl; } void SetNum(int a, int b, int c) {x=a;y=b;z=c;} int Add() {return x+y+z;} }; //example.cpp文件 #include ″example.h″ CMyApp theApp; //全局对象 void main(){ cout″In main...″endl; theApp.SetNum(2,4,6); couttheApp.Add(); coutendl″Go out...″endl; } 程序运行输出如下: Begin... In main... 12 Go out... 程序是先执行“CMyApp theApp;”创建并初始化惟一全局对象theApp,输出信息“Begin...”,然后进入主程序。 Visual C ++6.0的程序设计方法也是如此,即先建立并初始化惟一的全局对象theApp。 图5.1左边的框中给出这个程序的类图及全局变量图,右边是程序的.cpp文件。 图5.1 Object的类图及全局变量 5.2 使用MFC编制Win32 Application程序 C ++类库运用面向对象技术,大大简化了程序的设计工作。 Microsoft公司提供的基础类库MFC(Microsoft Foundation Classes)就是一个常被称为Application Framework的大类库,其中包含用来开发Windows下C ++应用程序的一组类,封装了大部分的Windows API,大大加速Windows下的C/C ++程序员的软件设计。 习惯上分别用Win16 和Win32区别16位和32位Windows程序,Windows API则是泛指两者。 由前面的讨论可知,驾驭数以千计的API函数并非易事。MFC则把这些浩繁的API函数逻辑地组织起来,使它们具有面向对象的抽象性、封装性、继承性和多态性等特点。 怎样学习MFC类库,各人意见不一。很多人认为: “学习MFC,最重要的一点是要学会抽象地把握问题,不求甚解”。这可能对减轻学习难度、提高兴趣是有帮助的,不过也有一些问题,即很多人成了代码拼凑机、只见树木不见森林。 其实,在学习开始就了解Windows程序的基本运行原理,并了解MFC是怎样与之结合的,能大大加快理解,让人更易于接受MFC,这样学习似慢实快。相反,很多书从头到尾地教读者如何如何做,最后仍旧不知所以。 学习MFC要理解MFC的应用程序框架,熟记其类层次结构,并不需要刻意去记忆众多的类及它们的成员函数。 5.2.1 Hello MFC 【例5.2】使用MFC类库编制输出“Hello MFC”的程序。 文档/视的结构比较复杂,先不让向导(AppWizard)生成代码,仍然用Visual C ++6.0集成开发环境生成一个空的Win32应用程序项目SMFC1。 建立SMFC1.cpp文件如下: #includeafxwin.h //使用MFC类库需要包含的头文件 class CMyWin:public CFrameWnd { public: CMyWin(){} protected: afx_msg void OnPaint(); DECLARE_MESSAGE_MAP() //声明宏 }; //使用消息宏 BEGIN_MESSAGE_MAP(CMyWin, CFrameWnd) ON_WM_

文档评论(0)

kehan123 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档