c8_Windows应用程序设计.ppt_第1页
c8_Windows应用程序设计.ppt_第2页
c8_Windows应用程序设计.ppt_第3页
c8_Windows应用程序设计.ppt_第4页
c8_Windows应用程序设计.ppt_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Windows应用程序设计,西北工业大学计算机学院 周兴社 谷建华 倪红波,Windows应用编程基础,Windows API API是应用程序编程接口(Application Programming Interface)的英文缩写。它是大量函数加上数字常量、宏、结构、类型以及其它相关项的集合。可以从C+、Microsoft Visual Basic汇编语言、Fortran、Pascal以及其它编程语言中调用这些函数。大多数API函数定义在称为Windows.h的文件中,也可以从Windows平台软件开发包(SDK)中得到它。,根据Windows API函数的功能,可以将其分为三类: 窗口管理

2、函数。用以实现窗口的创建、移动和修改功能。 图形设备(GUI)函数。用以实现与设备无关的图形操作功能。 系统服务函数。用以实现与操作系统有关的多种功能。,Windows基础 要掌握Windows编程的方法,必须要了解以下内容: 事件及事件驱动的概念。 消息及其在编程中的应用。 绘图及设备环境。 对象与句柄。 坐标系。,1事件 Windows花费大量时间等待用户的动作以便作出响应,所以这种系统也叫做事件驱动的系统。当用户按下一个键、移动鼠标或单击鼠标按钮时,计算机通知Windows系统已经发生了一个事件,以及事件的种类、发生的时间、发生的位置 (如坐标值)。 事件以如下三种方式产生: 通过输入设

3、备,如键盘和鼠标。 通过屏幕上可视的对象,如菜单、工具栏按钮、滚动条和对话框上的控件。 来自Windows内部,如当一个后面的窗口显示到前面来。,2消息 当Windows捕获一个事件后,它会编写一条消息,将相关信息放入一个数据结构中,然后将包含此数据结构的消息发送给需要消息的程序。 Windows消息是在Windows文件中用宏定义的常数。消息常数名通常以WM开头,格式为WM_XXX,例如WM_QUIT、WM_CHAR。,Windows将消息放入目标应用程序的消息队列中。在消息队列中所有消息都处于等待状态,直到应用程序准备处理它。 应用程序中通常有一段代码称为消息循环,形式如下: While(

4、GetMessage( ,在应用程序检索到WM_QUIT消息之前,这个循环会不断运行。当它收到WM_QUIT时,GetMessage返回false,循环停止,同时应用程序终止。 当GetMessage返回一条消息后,循环将它传递给TranslateMessage函数以检测该消息是不是来自键盘。 如果是来自键盘的消息,则TranslateMessage将原始键盘消息转化为WM_CHAR消息。WM_CHAR消息是专为传递有关键入字母信息设计的。TranslateMessage不处理非键盘消息。,消息处理函数是用于处理特定消息的一些代码。收到消息的应用程序会做些什么,取决于应用程序本身。程序员可以编

5、写相应的处理函数以处理消息。 如果程序员没有为该消息编写处理函数,又需要把消息传递给Windows,让Windows对消息进行默认处理,Windows会提供一个称作DefWindowProc的处理函数。Windows首先调用程序员提供的处理函数,而不用Windows的默认方式。,对于特定的消息有许多标准或典型的处理。例如,WM_PAINT消息(在窗口中重新绘制内容时发送)的处理函数需要重新构造显示在窗口中的图像,需要重新绘制可见的文本行、图形等等。 另外,经常需要编写处理函数的一条消息是WM_COMMAND,用于处理来自菜单和按钮的命令,相应的处理函数可能会显示一个对话框、完成一次计算、选择一

6、个选项或启动其它的操作等。,3绘图及设备环境 Windows具有图形用户界面 (GUI),它包括菜单、工具栏、滚动条和对话框中的按钮等元素。这些元素都是被绘制出来的。 当程序第一次显示窗口时,需要第一次绘制窗口的内部或客户区。客户区是由窗口的边界、标题栏以及框架元素包围的空间。,在窗口的任何部分被破坏或无效时,需要重新绘制它们。例如,当其它窗口覆盖在应用程序的窗口上,然后又离开。Windows不会保存窗口中的图像,由于它不能自己重新绘制所有的部分,因此程序需要重新绘制窗口的内容。 在要求重新绘制时,一般由Windows负责绘制窗口的框架,而程序员负责绘制客户区。与客户区对应有一个Windows

7、对象称为设备环境(Device Context,通常缩写为DC)。,4对象与句柄 对设备环境的访问是通过Windows返回的句柄进行的。用于描述设备环境句柄的变量类型是HDC。事实上,Windows提供了许多种类型的句柄(窗口、字体等)。每种对象都有一个相应的句柄类型,例如HWND和HFONT。 常见的Windows对象的句柄如下: Windows对象相关句柄 设备环境HDC 窗口HWND 菜单HMENU,光标HCURSOR 画笔HPEN 画刷HBRUSH 字体HFONT 图标HICON 位图HBITMAP 调色板 HPALETTE 文件HFILE 区域HRGN 加速键表 HACCEL,Pol

8、ygon用几个点绘制多边形 Pie绘制饼图 Rectangle在指定的坐标处绘制矩形 Ellipse在指定的坐标处绘制椭圆 在MFC中,有许多函数是CDC类的成员函数。CDC指设备环境类 (Device Context Class)。Windows中负责设备环境和绘制函数的部分称为图形设备接口 (Graphics Device Interface,GDI)。,GDI是一个完整的两维绘制系统,它具有设备环境、绘制函数以及用于测量和定位所绘制的图像的几种坐标系统。 5坐标系 要为绘制和其它任务指定位置,需要坐标系统。Windows提供了8种不同的坐标系,每种都有各自的用途。Windows默认的坐标

9、系原点在窗口客户区的左上角,x向右为正,y向下为正,没有负的坐标。,Windows消息映射及处理 我们知道,用C+编写MS-DOS程序时一定要有一个main( )函数,程序由main( )函数开始运行,其它函数都是由main( )函数调用的。同理,Windows程序需要有一个WinMain( )函数 (如果应用MFC类库,WinMain( )函数就被隐蔽了),该函数主要是建立应用程序的主窗口。,Windows程序与MS-DOS程序的根本差别在于:MS-DOS程序是通过调用操作系统的功能来获得用户输入的,而Windows程序则是通过操作系统发送的消息来处理用户输入的,程序的主窗口中需要包含处理Windows所发送消息的代码。,在Windows程序中,管理消息的方式通常是这样的:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论