欢迎来到天天文库
浏览记录
ID:40835754
大小:233.46 KB
页数:16页
时间:2019-08-08
《API编程和MFC框架简介》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第17章API编程和MFC框架简介在学习了C++基本语法之后,读者还不足以编写出界面化实用的程序,这时需要借助于一些框架来建筑。VisualC++6.0经常使用到API(ApplicationProgrammingInterface,应用程序接口)和MFC(MicrosoftFoundationClassLibrary,微软基础类库)来进行编程。通过本章的学习,读者需要理解API编程原理、掌握API编程基本方法、理解MFC基本框架,MFC基本开发流程。17.1API编程介绍Windows操作系统应用程
2、序接口(WindowsAPI),简称WinAPI,是微软对于Windows操作系统中可用的内核应用程序编程接口的称法。API是应用软件与Windows系统最直接的交互方式。Windows自带一个软件开发包(SDK:SoftwareDevelopmentKit),其提供相应的文档和工具,以使开发者开发使用WindowsAPI的软件和利用Windows技术。17.1.1认识API的编程在学习API编程之前,首先来分析一个典型的Win32Application程序,从而初步认识API函数。17.1.2API
3、函数的概念和作用Windows下,各种界面丰富、功能强大的应用程序都离不开API函数。可以说API函数是开发应用程序的基石,它能直接与操作系统核心进行交互。直接利用Win32API函数进行开发是比较复杂的。复杂性首先体现在,开发者必须记住大量常用的API函数的原型和使用方法,其次必须对Windows操作系统的底层结构有深入的了解,要做到这两点是比较困难的。随着软件技术的发展,开发者一直在寻找更为有效的开发方法。17.1.3WindowsAPI分类标准Win32API所提供的功能包括窗口管理、窗口通用控
4、制、Shell特性、图形设备接口、系统服务、国际特性和网络服务7类。这些API所提供的功能分别如下。基础服务(BaseServices)API:对Windows系统的基础资源进行访问。例如,对文件系统、外部设备、进程、线程和访问注册表等系统的访问。图形设备接口(GDI)API:在显示器、打印机及其他外部输出设备上绘制图形。图形化用户界面(GUI)API:建立和管理屏幕和大多数基本控件,如接收鼠标和键盘输入等。通用对话框链接库(CommonDialogBoxLibrary)API:提供应用程序的标准对话
5、框,如打开/保存文件对话框、字体对话框等。通用控件链接库(CommonControlLibrary)API:提供了操作系统级别的高级控件。例如,状态栏、进度条、工具栏等。Windows外壳(WindowsShell)API:提供应用程序对操作系统的访问。网络服务(NetworkServices)API:提供网络功能接口,如NetBIOS、Winsock等。Web相关API:为网页浏览器提供许多应用程序接口。多媒体相关API:为多媒体服务和游戏服务提供接口。程序通信API:提供不同应用程序的通信接口。后
6、面将学习到这些基本的通讯机制。17.1.4WindowsAPI基本术语为了更好地了解Windows编程,这里必须先了解一些基本术语的概念。1.句柄句柄是Windows编程的基础,是最常用的术语。句柄本身是Windows在内存中一个占有4个字长的数值,用于标识应用程序中不同对象和相同对象的不同实例。2.消息消息是Windows中的一个重要概念。消息是指操作系统向某个程序发出的一个通知,告诉应用程序某个事件发生。在Windows中,用户或系统中所发生的任何活动被当作事件来处理。3.消息处理机制消息处理机制
7、是Windows处理消息的方法和规则,Windows有一套完整的消息处理机制。17.1.5WindowsAPI基本使用现在使用最基本的范例程序HelloWorld,来说明Win32API的运行机制。读者可以参照【示例17-1】中的代码来进行分析。编写一个API窗口程序,其具体的操作步骤如下。(1)入口函数:每一个程序都必须有一个进入点,Win32Application的进入点函数的名称是WinMain,它的原型如下。intAPIENTRYWinMain(HINSTANCEhInstance,HINST
8、ANCEhPrevInstance,LPSTRlpCmdLine,intnCmdShow)(2)注册窗口类:Windows应用程序的运行一般都需要窗口进行显示,窗口类都是从窗口基类派生而来的。注册窗口类时使用RegisterClassEx()函数,其原型如下。ATOMMyRegisterClass(HINSTANCEhInstance);(3)创建窗口:创建窗口是在InitInstance()函数中完成的。创建窗口使用CreateWindow()函数,其
此文档下载收益归作者所有