预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共55页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

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

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第7章 MFC原理与方法一个优秀的编程工具往往匹配一个功能强大的类库,类库封装了大量Windows编程需要使用的函数和数据结构。与VisualC++捆绑在一起的MFC(MicrosoftFoundationClass)微软基础类就是这样一个由Microsoft公司设计的类库。采用MFC方式编程提高了Windows应用程序的开发效率,但由于MFC应用程序结构的复杂性和透明性,要想完全掌握MFC应用程序的内部机制需要付出很大的努力。 认识MFC只是一个过程、一个手段,最终目的是为了良好并熟练地运用MFC。本章主要学习内容: Windows的编程机制 MFC的基本原理和使用方法: MFC类 MFC应用程序框架 MFC消息管理 MFC宏 常用的MFC类7.1Windows编程基础WindowsAPI(ApplicationProgrammingInterface)是Windows操作系统与应用程序之间的标准接口,它提供了上千个标准函数、宏和数据结构的定义。 在使用VisualC++、VisualBasic和Delphi编程时都可以调用WindowsAPI函数,Windows应用程序可通过调用标准WindowsAPI函数使用系统提供的功能。 WindowsAPI函数定义在一些DLL动态链接库中,其中最主要的DLL是User32.dll、Gdi32.dll和Kernel32.dll三个库文件。传统SDK编程:程序员通过调用API函数,自己动手、按部就班地实现程序各部分的功能。SDK应用程序的结构比较清晰,但程序员必须编写所有的功能代码。 利用VisualC++编写一个类SDK应用程序:首先利用Win32Application向导建立一个Windows应用程序框架,然后根据需要可以向程序项目中添加一些头文件、实现源文件和资源文件,并编写具体的程序代码。1.执行“File|New”菜单命令,在New对话框的Project页面中选择Win32Application项目类型,输入程序名Hello。在向导第1步选择“Atypital“Helloworld!”application”项,单击Finish按钮。 2.在窗口函数WndProc()的消息处理分支switch-case结构中添加WM_LBUTTONDOWN鼠标单击消息及其处理代码: caseWM_LBUTTONDOWN: MessageBox(NULL,"Youpressedthe leftbuttonofmouse!","Message",NULL); break;SDK应用程序结构:7.1.2句柄获取MFC类对象的句柄的两种方法:所谓消息就是用于描述某个事件发生的信息,而事件是对于Windows的某种操作。 事件和消息密切相关,事件是因,消息是果,事件产生消息,消息对应事件。所谓消息的响应,其实质就是事件的响应。 消息驱动是Windows应用程序的核心,所有的外部响应(如键盘、鼠标和计时器等)都被Windows先拦截,转换成消息后再发送到应用程序中的目标对象,应用程序根据消息的具体内容进行处理。 消息不仅可由Windows发出,它也可由应用程序本身或其它程序产生。Windows为每一个应用程序都维护一个或多个消息队列,发送到每个程序窗口的消息都排成一个队列。消息队列和在应用程序中的轮询处理Windows消息分为三种类型:typedefstructtagMSG{ HWNDhWnd; //目标窗口句柄 UINTmessage; //消息标识 WPARAMwParam; //消息参数1(附加信息,16位) LPARAMlParam; //消息参数2(附加信息,32位) DWORDtime; //消息发送时间 POINTpt; //消息发送时鼠标的屏幕坐标 }MSG;例为程序Hello添加键盘消息处理功能,判断当前按下的键是不是A或a键,并给出相应的提示。利用WindowsAPI开发程序的用户有这样的体会,即使开发一个简单的Windows应用程序也需要对Windows的编程原理有很深刻的认识,需要手工编写冗长的代码。由于程序的出错率是随着代码长度的增加呈几何级数增长的,而且当程序长度逐渐膨胀时,调试程序会变得越来越困难。因此,传统的Windows应用程序设计需要程序员有极大的耐心和丰富的编程经验。 VisualC++捆绑了微软的基础类MFC,编程时我们就可以利用类的可重用性和可扩充性,大大降低Windows应用程序设计的难度和工作量。7.2.1MFC概述使用标准化的程序代码结构,有利于程序员之间的交流。 VisualC++为MFC提供了大量的工具支持,提高了编程效率。如利用MFCAppWizard创建MFC应用程序框架,利用ClassWizard方便地对Windows消息进行