吉林大学远程教育.ppt
《吉林大学远程教育.ppt》由会员分享,可在线阅读,更多相关《吉林大学远程教育.ppt(26页珍藏版)》请在三一办公上搜索。
1、吉林大学远程教育课件,Windows A P I编 程,主讲人:翟慧杰,学 时:48,习题1,四、Windows绘图程序设计 图形设备接口(GDI:Graphics Device Interface)是Windows的子系统,它负责在视频显示器和打印机上显示图形。正如您所认为的那样,GDI是Windows非常重要的部分。不但您为Windows编写的应用系统在显示视觉信息时只使用GDI,就连Windows本身也只使用GDI来显示用户界面对象,诸如菜单、滚动条、图标和鼠标光标。从程序员的观点来看,GDI由几百个函数调用和一些相关的数据类型、宏和结构组成。但是在开始讲述这些函数的细节之前,让我们先从
2、宏观上了解一下GDI的整体结构。,组成GDI的几百个函数调用可以分为几大类:获取或创建和释放(或清除)设备描述表的函数 在绘图时需要设备描述表句柄。GetDC和RealseDC函数让您在非WM_PAINT 的消息期间来做到这一点,而 BeginPaint和 EndPaint函数(虽然在技术上它们是 USER模块而不是GDI模块的一部分)在进行绘图的WM_PAINT消息期间使用。获取有关设备描述表信息的函数 GetTextMetrics函数来获取有关设备描述表中当前所选字体的尺寸信息。绘图函数 显然,在所有前提条件都得以满足之后,这些函数是真正重要的部分。我们使用TextOut函数在窗口的客户区
3、显示一些文本。我们将看到,其他GDI函数还可以让您画线、填充区域。,在屏幕或打印机上显示的图形类型本身可以被分为几类,通常被称为“图元”,它们是:直线和曲线 线条是所有矢量图形绘制系统的基础。GDI支持直线、矩形、椭(包括椭圆的子集,也就是我们所说的“圆”)、椭圆圆周上的部分曲线即所谓“弧”,以及贝塞尔曲线,我们将在本章中分别对它们进行介绍。所有更复杂的曲线可由折线(polyline)代替,折线通过一组非常短的直线来定义一条曲线。线条用设备描述表中选中的当前画笔绘制。窗体客户区绘图步骤:1获取设备环境句柄 2获取绘图工具 3选择绘图工具 4利用选择的绘图工具绘图 5恢复原来的绘图工具并删除选择
4、的绘图工具 6释放设备环境句柄,WINDOWS GDI 函数:1GetDC()函数 功能:用于获取指定窗体客户区的显示器设备描述表句柄。2ReleaseDC()函数 功能:用于释放设备描述表句柄。3BeginPaint()函数 功能:用于获取窗体客户区绘图的相关信息,并为绘图做好准备。4.EndPaint()函数 功能:用于结束窗体客户区绘图。5.SetPixel()函数 功能:用于在窗体客户区绘制点(像素)。6、RGB()宏 功能:用于设置颜色。7、CreatePen()函数 功能:用于建立逻辑笔。,8、MoveToEx()函数 功能:用于窗体客户区移动逻辑笔。9、LineTo()函数 功能
5、:用于在窗体客户区当前位置画线。10、Ellipse()函数 功能:用于窗体客户区绘制椭圆。11、SelectObject()函数 功能:用于选择一种绘图工具柄将其装入设备描述表。12、DeleteObject()函数 功能:用于删除一个绘图工具。13、TextOut()函数 功能:用于在窗体客户区输出文本。14、SetBkMode()函数 功能:用于设置窗体客户区背景填充方式。15、SetTextColor()函数16、CreateFont()函数,其它函数1SetTimer()函数功能:用于建立产生时间消息的时间控件。2、KillTimer()函数 功能:用于取消时间控件。3、GetCli
6、entRect()函数 功能:用于获取窗体客户区范围。画点和线:我们已谈论过Windows图形设备接口将图形输出设备的设备驱动程序与计算机连在一起的方式。在理论上,只要提供SetPixel和GetPixel函数,就可以使用图形设备驱动程序绘制一切东西了。其余的一切都可以使用 GDI模块中实现的更高级的例程来处理。例如画线时,只需GDI调用 SetPixel数次,并适当地调整和Y坐标。在实际情况中,也的确可以仅使用SetPixel和GetPixel函数进行您需要的任何绘制。您也可以在这些函数的基础上设计出简洁和构造良好的图形编程系统。唯一的问题是性能。如果一个函数通过几次调用才能到达SetPix
7、el函数,那么它运行起来会非常慢。如果一个图形系统画线和进行其他复杂的图形操作是在设备驱动程序的层次上,它就会更有效得多,因为设备驱动程序对完成这些操作的代码进行了优化。此外,一些视频适配器卡包含了图形协处理器,它允许视频硬件自己绘制图形。,五 文本和字体:文本输出是应用程序经常需要实现的功能。许多程序的运行结果都必须以文本输出形式显示;文字处理程序更是主要以文本作为处理的对象。所以,程序员掌握文本输出的基本原理和技术具有重要的意义。文本输出需要解决的问题是如何修改显示文本的字体、颜色和大小,以及如何协调在不同设备上显示文本的差异。,文本的设备描述表属性:设备描述表(Device Contex
8、t)是一个决定输出的位置和外形的属性集合。在用户编制的应用程序中可以通过设备描述表句柄间接地读取设备描述表。当程序为设备描述表申请一个句柄时,系统就自动生成了一个设备描述表,生成的设备描述表包含了所有属性的默认值。背景色定义了填充字符,以及填充字符间区域的颜色。背景模式有两种取值:OPAQUE和 TRANSPARENT。默认值为 OPAQUE表示背景颜色有效;如果设定为TRANSPARENT,则表示关闭背景色。字符间距和文本颜色分别表示两个字符间的间隔和字体的颜色。字体描述了所显示字符的大小、外形和种类,也就是说字体包含了字符集中每个字符属性的抽象描述。字体分为两种基本类型:物理字体和逻辑字体
9、。GDI(图形设备接口)常用的字体如表所示。,六、键盘和鼠标:在Microsoft Windows 中,键盘和鼠标是两个标准的用户输入源,在一些交叠的操作中通常相互补充使用。当然,鼠标在今天的应用程序中比10年前使用得更为广泛。甚至在一些应用程序中,我们更习惯于使用鼠标,例如在游戏、画图程序、音乐程序,以及Web创览器等程序中就是这样。然而,我们可以不使用鼠标,但绝对不能从一般的PC中拆掉键盘。相对于个人计算机的其他组件,键盘有非常久远的历史,它起源于1874年的第一台Remington打字机。早期的计算机程序员用键盘在Hollerith卡片上打孔,以后在哑终端上用键盘直接与大型主机通讯。PC
10、上的键盘在某些方面进行了扩展,包括了功能键、光标定位键和(通常都带有的)单独的数字键盘,但它们的输入原理基本相同。Windows程序获得键盘输入的方式:键盘输入以消息的形式传递给程序的窗口过程。实际上,第一次学习消息时,键盘就是一个明显的例子:消息应该传递给应用程序的信息类型。,Windows用8种不同的消息来传递不同的键盘事件。这好像太多了,但是(就像我们所看到的一样)程序可以忽略其中至少一半的消息而不会有任何问题。并且,在大多数情况下,这些消息中包含的键盘信息会多于程序所需要的。处理键盘的部分工作就是识别出哪些消息是重要的,哪些是不重要的。虽然应用程序在很多情况下可以通过鼠标实现信息的输入
11、,但到现在为止键盘仍然是PC机中不可替代的重要输入设备。用键盘当作输入设备,每当用户按下或释放某一个键时,会产生一个中断,该中断激活键盘驱动程序KEYBOARD.DRV来对键盘中断进行处理。KEYBOARD.DRV程序会根据用户的不同操作进行编码,然后调用Windows用户模块USER.EXE生成键盘消息,并将该消息发送到消息队列中等候处理。1扫描码和虚拟码 扫描码对应着键盘上的不同键,每一个键被按下或释放时,都会产生一个唯一的扫描码作为本身的标识。扫描码依赖于具体,的硬件设备,即当相同的键被 按下或释放时,在不同的机器上可能产生不同的扫描码。在程序中通常使用由Windows系统定义的与具体设
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 吉林大学 远程教育

链接地址:https://www.31ppt.com/p-6409675.html