C及Windows可视化程序设计 刘振安著.pptx 立即下载
2024-09-13
约2.7万字
约142页
0
1.7MB
举报 版权申诉
预览加载中,请您耐心等待几秒...

C及Windows可视化程序设计 刘振安著.pptx

C及Windows可视化程序设计刘振安著.pptx

预览

免费试读已结束,剩余 137 页请下载文档后查看

20 金币

下载文档

如果您无法下载资料,请参考说明:

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*
查看更多
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

C及Windows可视化程序设计 刘振安著

文档大小:1.7MB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
全场最划算
12个月
199.0
¥360.0
限时特惠
3个月
69.9
¥90.0
新人专享
1个月
19.9
¥30.0
24个月
398.0
¥720.0
6个月会员
139.9
¥180.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用