




如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
会计学本章将介绍如何使用MFC类库编程,并通过一个简单的例子说明MFC的消息处理机制。 然后模拟文档/视结构编制一个程序,通过它引入使用向导和文档/视结构的概念,为学习下一章的文档/视结构打下基础。 最后给出一个基于对话框风格的实例。 在使用MFC类库编程之前,先来看一个使用全局对象的例子。 【例12.1】使用全局对象启动程序运行。 //example.h文件 #include<iostream> usingnamespacestd; classCMyApp{ intx,y,z; public: CMyApp(inta=0,intb=0,intc=0):x(a),y(b),z(c) { cout<<″Begin...″<<endl; } voidSetNum(inta,intb,intc) {x=a;y=b;z=c;} intAdd() {returnx+y+z;} }; //example.cpp文件 #include″example.h″ CMyApptheApp;//全局对象 voidmain() { cout<<″Inmain...″<<endl; theApp.SetNum(2,4,6); cout<<theApp.Add(); cout<<endl<<″Goout...″<<endl; }程序运行输出如下: Begin... Inmain... 12 Goout... 程序是先执行“CMyApptheApp;”创建并初始化惟一全局对象theApp,输出信息“Begin...”,然后进入主程序。 VisualC++6.0的程序设计方法也是如此,即先建立并初始化惟一的全局对象theApp。 图12.1左边的框中给出这个程序的类图及全局变量图,右边是程序的.cpp文件。 图12.1Object的类图及全局变量 C++类库运用面向对象技术,大大简化了程序的设计工作。 Microsoft公司提供的基础类库MFC(MicrosoftFoundationClasses)就是一个常被称为ApplicationFramework的大类库,其中包含用来开发Windows下C++应用程序的一组类,封装了大部分的WindowsAPI,大大加速Windows下C/C++程序员的软件设计。习惯上分别用Win16和Win32区别16位和32位Windows程序,WindowsAPI则是泛指两者。 由前面的讨论可知,驾驭数以千计的API函数并非易事。MFC则把这些浩繁的API函数逻辑地组织起来,使它们具有面向对象的抽象性、封装性、继承性和多态性等特点。 怎样学习MFC类库,各人意见不一。很多人认为:“学习MFC,最重要的一点是要学会抽象地把握问题,不求甚解”。这可能对减轻学习难度、提高兴趣是有帮助的,不过也有一些问题,即很多人成了代码拼凑机、只见树木不见森林。其实,在学习开始就了解Windows程序的基本运行原理,并了解MFC是怎样与之结合的,能大大加快理解,让人更易于接受MFC,这样学习似慢实快。相反,很多书从头到尾地教读者如何如何做,最后仍旧不知所以。 学习MFC要理解MFC的应用程序框架,熟记其类层次结构,并不需要刻意去记忆众多的类及它们的成员函数。【例12.2】使用MFC类库编制输出“HelloMFC”的程序。 文档/视的结构比较复杂,先不让向导(AppWizard)生成代码,仍然用VisualC++6.0集成开发环境生成一个空的Win32应用程序项目SMFC1。 建立SMFC1.cpp文件如下:#include<afxwin.h>//使用MFC类库需要包含的头文件 classCMyWin:publicCFrameWnd { public: CMyWin(){} protected: afx_msgvoidOnPaint(); DECLARE_MESSAGE_MAP()//声明宏 }; //使用消息宏 BEGIN_MESSAGE_MAP(CMyWin,CFrameWnd) ON_WM_PAINT() END_MESSAGE_MAP()voidCMyWin∷OnPaint() { CStringstr=″Hello,MFC!″;//设置输出窗口的 //字符串内容 CRectrect(240,100,340,200); CPaintDCdc(this); dc.DrawText(str,&rect,DT_CENTER); } classCMyApp:publicCWinApp { public: BOOLInitInstance(); };BOOLCMyApp∷InitInstance()//改写CWinApp的 //InitInstance函数 { CMyWin*

骑着****猪猪
实名认证
内容提供者


最近下载