吉林大学远程教育72.pptVIP

  • 0
  • 0
  • 约1.24万字
  • 约 26页
  • 2018-03-29 发布于广东
  • 举报
吉林大学远程教育72

吉林大学远程教育课件; 四、 Windows绘图程序设计 图形设备接口(GDI:Graphics Device Interface)是Windows的子系统,它负责在视频显示器和打印机上显示图形。正如您所认为的那样,GDI是Windows非常重要的部分。不但您为Windows编写的应用系统在显示视觉信息时只使用GDI,就连Windows本身也只使用GDI来显示用户界面对象,诸如菜单、滚动条、图标和鼠标光标。 从程序员的观点来看,GDI由几百个函数调用和一些相关的数据类型、宏和结构组成。 但是在开始讲述这些函数的细节之前,让我们先从宏观上了解一下GDI的整体结构。;组成GDI的几百个函数调用可以分为几大类: 获取《或创建》和释放(或清除)设备描述表的函数 在绘图时需要设备描述表句柄。 GetDC和RealseDC函数让您在非WM_PAINT 的消息期间来做到这一点,而 BeginPaint和 EndPaint函数(虽然在技术上它们是 USER模块而不是GDI模块的一部分)在进行绘图的WM_PAINT消息期间使用。 获取有关设备描述表信息的函数 GetTextMetrics函数来获取有关设备描述表中当前所选字体的尺寸信息。 绘图函数 显然,在所有前提条件都得以满足之后,这些函数是真正重要的部分。我们使用TextOut函数在窗口的客户区显示一些文本。我们将看到,其他GDI函数还可以让您画线、填充区域。;在屏幕或打印机上显示的图形类型本身可以被分为几类,通常被称为“图元”,它们是: 直线和曲线 线条是所有矢量图形绘制系统的基础。GDI支持直线、矩形、椭(包括椭圆的子集,也就是我们所说的“圆”)、椭圆圆周上的部分曲线即所谓“弧”,以及贝塞尔曲线,我们将在本章中分别对它们进行介绍。所有更复杂的曲线可由折线( polyline)代替,折线通过一组非常短的直线来定义一条曲线。线条用设备描述表中选中的当前画笔绘制。 窗体客户区绘图步骤: 1.获取设备环境句柄 2.获取绘图工具 3.选择绘图工具 4.利用选择的绘图工具绘图 5.恢复原来的绘图工具并删除选择的绘图工具 6.释放设备环境句柄 ;WINDOWS GDI 函数: 1.GetDC()函数 功能: 用于获取指定窗体客户区的显示器设备描述表句柄。 2.ReleaseDC () 函数 功能:用于释放设备描???表句柄。 3.BeginPaint()函数 功能:用于获取窗体客户区绘图的相关信息,并为绘图做好准备。 4. EndPaint()函数 功能:用于结束窗体客户区绘图。 5. SetPixel()函数 功能:用于在窗体客户区绘制点(像素)。 6、RGB()宏 功能: 用于设置颜色。 7、CreatePen()函数 功能: 用于建立逻辑笔。;8、MoveToEx()函数 功能:用于窗体客户区移动逻辑笔。 9、LineTo()函数 功能:用于在窗体客户区当前位置画线。 10、Ellipse()函数 功能:用于窗体客户区绘制椭圆。 11、SelectObject()函数 功能:用于选择一种绘图工具柄将其装入设备描述表。 12、DeleteObject()函数 功能:用于删除一个绘图工具。 13、TextOut()函数 功能:用于在窗体客户区输出文本。 14、SetBkMode()函数 功能:用于设置窗体客户区背景填充方式。 15、SetTextColor()函数 16、CreateFont()函数 ;其它函数 ?1.SetTimer()函数 功能:用于建立产生时间消息的时间控件。 2、KillTimer()函数 功能:用于取消时间控件。 3、GetClientRect()函数 功能:用于获取窗体客户区范围。 画点和线: 我们已谈论过Windows图形设备接口将图形输出设备的设备驱动程序与计算机连在一起的方式。在理论上,只要提供SetPixel和GetPixel函???,就可以使用图形设备驱动程序绘制一切东西了。其余的一切都可以使用 GDI模块中实现的更高级的例程来处理。例如画线时,只需GDI调用 SetPixel数次,并适当地调整X和Y坐标。在实际情况中,也的确可以仅使用SetPixel和GetPixel函数进行您需要的任何绘制。您也可以在这些函数的基础上设计出简洁和构造良好的图形编程系统。唯一的问题是性能。如果一个函数通过几次调用才能到达SetPixel函数,那么它运行起来会非常慢。如果一个图形系统画线和进行其他复杂的图形操作是在设备驱动程序的层次上,它就会更有效得多,因为设备驱动程序对完成这些

文档评论(0)

1亿VIP精品文档

相关文档