第3章Windows编程与MFC基础教材课程

上传人:yuzo****123 文档编号:140062807 上传时间:2020-07-26 格式:PPT 页数:23 大小:472KB
返回 下载 相关 举报
第3章Windows编程与MFC基础教材课程_第1页
第1页 / 共23页
第3章Windows编程与MFC基础教材课程_第2页
第2页 / 共23页
第3章Windows编程与MFC基础教材课程_第3页
第3页 / 共23页
第3章Windows编程与MFC基础教材课程_第4页
第4页 / 共23页
第3章Windows编程与MFC基础教材课程_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《第3章Windows编程与MFC基础教材课程》由会员分享,可在线阅读,更多相关《第3章Windows编程与MFC基础教材课程(23页珍藏版)》请在金锄头文库上搜索。

1、第3章 Windows编程与MFC基础,要想熟练掌握Windows应用程序的开发,首先需要理解Windows平台下程序运行的内部机制。本章首先将剖析Windows程序的内部运行机制,为读者扫清VC+学习路途中的第一个障碍,而后简单介绍一下MFC的基础知识,为进一步学习MFC程序开发打下基础。,3.1 Windows编程基础,Windows操作系统采用了图形用户界面,借助于它提供的API(Application Programming Interface)函数,用户可以编出具有漂亮图形界面的程序。本节将主要介绍一下涉及Windows编程中用到的一些概念。,3.1.1 Windows API函数,

2、为方便用户开发Windows应用程序,Windows操作系统提供了各种各样的函数。这些函数是Windows操作系统提供给应用程序编程的接口(Application Programming Interface),简称为API函数。用户在编写Windows程序时所说的API函数,就是指系统提供的函数,所有主要的Windows函数都在“Windows.h”头文件中进行了声明。,3.1.2 窗口与句柄,窗口是Windows应用程序中一个非常重要的元素,它是Windows应用程序与用户进行交互的接口。一个Windows应用程序至少要有一个窗口,称为主窗口。通过窗口,可以接收用户的输入,并显示输出。,3.

3、1.4 常用的Windows数据类型,Windows应用程序中常用的数据类型如表(具体内容请参照本书),3.2 Windows应用程序分析,WinMain和WinProc函数构成了Windows应用程序的主体。WinMain函数负责建立窗口和建立消息循环,WndProc函数负责消息的处理。典型的Windows窗口的创建与处理过程可表示为(具体内容请参照本书),3.2.1 WinMain函数,传统的DOS程序以main函数作为进入程序的初始入口点,在Windows应用程序中,main函数被WinMain函数取代。当Windows操作系统启动一个程序时,它调用的就是该程序的WinMain函数。Wi

4、nMain函数是Windows程序的入口点函数,当WinMain函数结束或返回时,Windows应用程序结束。,3.2.2 创建窗口,创建一个完整的窗口,需要经过下面4个操作步骤:定义窗口类、注册窗口类、创建窗口实例、显示及更新窗口。,3.2.3 消息循环,在创建窗口、显示窗口、更新窗口后,就需要编写一个消息循环,不断地从消息队列中取出消息,并进行响应。要从消息队列中取出消息,需要调用GetMessage()函数,其原型如下:(具体内容请参照本书),3.2.4 WinProc窗口函数,在完成上述步骤后,剩下的工作就是编写一个窗口函数,用于处理发送给窗口的消息。WinProc函数由一个或多个sw

5、itch语句组成。每一条case语句对应一种消息,当应用程序接收到一个消息时,相应的case语句被激活。,3.2.5 Windows编程实例,本节将通过一个实例讲解Windows窗口的创建。该Windows应用程序将创建并显示一个窗口,在客户区中输出文本。 在Visual C+6.0中,可以使用AppWizard创建一个空的“Win32Application”工程,在其中创建源文件,利用Windows API函数实现基本的Windows窗口程序编程。,3.3 MFC基础,前面已经多次提到,使用Viusal C+6.0进行应用程序的开发,其最大的便利就是可以使用其提供的MFC类库,通过MFC A

6、ppWizard自动生成的MFC应用程序框架,方便地开发自己想要实现的功能。本节将介绍有关MFC的基础知识。,3.3.1 MFC概述,Visual C+的微软基础类库(Microsoft Foundation Class Library,MFC)封装了大部分API函数,并提供了一个应用程序框架,简化了和标准了Windows程序设计,所以用MFC编写Windows应用程序也称为标准Windows程序设计。,3.3.2 MFC基础类及其层次结构,MFC类库采用单一继承结构,从根类CObject层层派生出绝大多数MFC中的类,(具体内容请参照本书),3.3.3 MFC中的全局函数,MFC库中还包含有

7、一些全局函数,这些函数不输入任何一个类,即可以直接使用。这些全局函数一般都以“Afx”为前缀,(具体内容请参照本书),3.4 MFC应用程序框架分析,通过3.2节介绍,相信读者对Windows应用程序的创建及其运行机制已经有了一定的了解,本节将对MFC应用程序框架作一下简单剖析,使读者了解MFC应用程序框架是如何组织与工作的。,3.4.1 入口函数,前面已经介绍过,WinMain函数是Windows程序的入口点函数。然而打开2.2.2节利用AppWizard创建的MFC应用程序“SDIDemo”,却找不到WinMain函数。 这时因为MFC考虑到典型的Windows程序需要的大部分初始化工作都

8、是标准化的,因此把WinMain函数隐藏在应用程序的框架中,编译时会自动将该函数链接到可执行文件中。 在Visual C+6.0安装目录下的“Microsoft Visual StudioVC98MFCSRC”路径中,会发现有一个源文件“WinMain.cpp”,其中定义了入口函数AfxWinMain,,3.4.2 应用程序对象,每个应用程序必须从CWinApp派生出自己的应用程序类,并定义一个全局的对象。该应用程序类包含了Windows下应用程序的初始化、运行和结束过程。基于框架建立的应用程序必须有一个(且只能有一个)从CWinApp派生的类的对象。 在工程“SDIDemo”的CSDIDem

9、oApp类的源文件中,可发现框架自动生成了应用程序对象,,3.4.3 InitInstance函数,CWinApp类中的InitInstance函数用于初始化实例。每次启动应用程序的一个实例时,WinMain函数都要调用InitInstance函数。 在工程“SDIDemo”的CSDIDemoApp类中,自动对InitInstance函数进行了重载,(具体内容请参照本书),3.4.4 Run函数,WinMain在初始化应用程序实例后,就调用CWinThread类的Run函数来处理消息循环。在Visual C+6.0安装目录下的“Microsoft Visual StudioVC98MFCSRC”路径中的源文件“THRDCORE.CPP”中会找到Run函数的实现代码,(具体内容请参照本书),3.4.5 MFC的消息映射,Windows程序中的消息处理是在WinProc函数中,通过Switch结构实现的。但当处理的消息比较多时,Switch-Case结构将变得分支很多,影响程序的可读性。而在MFC中,则采用了消息映射的结构进行结构化消息处理。 进行MFC消息处理,程序员要做的就是为每一个要处理的消息提供一个消息处理函数,然后系统通过MFC提供的一套消息映射系统来调用相应的消息处理函数。,3.4.6 MFC消息分类,MFC把消息分为3大类:窗口消息、控件通知消息和命令消息。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件 > 高中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号