c#2005net3.0高级编程(第5版)第30章使用gdi+绘图34116

c#2005net3.0高级编程(第5版)第30章使用gdi+绘图34116

ID:25928034

大小:2.09 MB

页数:53页

时间:2018-11-23

c#2005net3.0高级编程(第5版)第30章使用gdi+绘图34116_第1页
c#2005net3.0高级编程(第5版)第30章使用gdi+绘图34116_第2页
c#2005net3.0高级编程(第5版)第30章使用gdi+绘图34116_第3页
c#2005net3.0高级编程(第5版)第30章使用gdi+绘图34116_第4页
c#2005net3.0高级编程(第5版)第30章使用gdi+绘图34116_第5页
资源描述:

《c#2005net3.0高级编程(第5版)第30章使用gdi+绘图34116》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第30章使用GDI+绘图300第章使用GDI+绘图在本书中,有8章内容介绍用户交互和.NETFramework,第28章主要介绍了Windows窗体、如何显示对话框或SDI、MDI窗口,以及如何把各种控件放在这些窗口上,如按钮、文本框和列表框。第29章介绍在Windows窗体中使用许多Windows窗体控件处理各种数据源中的数据。这些标准控件的功能非常强大,使用它们就可以获得许多应用程序的完整用户界面。但是,有时还需要在用户界面上有更大的灵活性。例如,要在窗口的确定位置以给定的字体绘制文本,或者显示图像,但不使用图像框控件,只使用形状和图形。这些都

2、不能使用第28章中的控件来完成。要显示这种类型的输出,应用程序必须直接告诉操作系统需要在其窗口的什么地方显示什么内容。本章主要介绍如何绘制以下内容:●直线、简单图形●.BMP图像和其他图像文件●文本在这个过程中,还需要使用各种帮助对象,包括钢笔(用于定义直线的特性)、画笔(用于定义区域的填充方式)和字体(用于定义文本字符的图形)。我们还将介绍设备如何解释和显示不同的颜色。下面首先讨论GDI+技术。GDI+由.NET基类集组成,这些基类可用于在屏幕上完成定制绘图,能把合适的指令发送到图形设备的驱动程序上,确保在监视器屏幕上显示正确的输出(或打印到硬拷

3、贝中)。30.1理解绘图规则本节讨论一些基本规则,只有理解了它们,才能开始在屏幕上绘图。首先概述GDI,GDI+技术就建立在GDI上,然后说明它与GDI+的关系。接着介绍几个简单的例子。1045第30章使用GDI+绘图30.1.1GDI和GDI+一般来说,Windows的一个优点(实际上是现代操作系统的优点)是它可以让开发人员不考虑特定设备的细节。例如,不需要理解硬盘设备驱动程序,只需在相关的.NET类中调用合适的方法(在没有.NET的日子里,使用等价的WindowsAPI函数),就可以编程读写磁盘上的文件。这个规则也适用于绘图。计算机在屏幕上绘图

4、时,把指令发送给视频卡。问题是市面上有几百种不同的视频卡,大多数有不同的指令集和功能。如果把这个考虑在内,在应用程序中为每个视频卡驱动程序编写在屏幕上绘图的特定代码,这样的应用程序就根本不可能编写出来。这就是为什么在Windows最早期的版本中就有WindowsGraphicalDeviceInterface(GDI)的原因。GDI+提供了一个抽象层,隐藏了不同视频卡之间的区别,这样就可以调用WindowsAPI函数完成指定的任务了,GDI会在内部指出在运行特定的代码时,如何让客户机的视频卡完成要绘制的图形。GDI还可以完成其他任务。大多数计算机都

5、有多个显示设备——例如,监视器和打印机。GDI成功地使应用程序所使用的打印机看起来与屏幕一样。如果要打印某些东西,而不是显示它们,只需告诉系统输出的设备是打印机,再用相同的方式调用相同的WindowsAPI函数即可。可以看出,DC(设备环境)是一个功能非常强大的对象,在GDI下,所有的绘图工作都必须通过设备环境来完成。DC甚至可用于不涉及在屏幕或其他硬件设备上绘图的其他操作,例如在内存中修改图像。GDI给开发人员提供了一个相当高级的API,但它仍是一个基于旧的WindowsAPI并且有C语言风格函数的API,所以使用起来不是很方便。GDI+在很大程

6、度上是GDI和应用程序之间的一层,提供了更直观、基于继承性的对象模型。尽管GDI+基本上是GDI的一个包装器,但Microsoft已经能通过GDI+提供新功能了,它还有一些性能方面的改进。.NET基类库的GDI+部分非常大,本章不解释其特性。这是一个深思熟虑的决定,因为只要解释其中的几个类、方法和属性,就会把本章变成一个仅列出GDI+类和方法的参考指南。而理解绘图的基本规则更重要;这样您应可以自己研究这些类。当然,关于GDI+中类和方法的完整列表,可以参阅SDK文档说明。注意:有VB6背景的开发人员会发现,自己并不熟悉绘图过程涉及的概念,因为VB6

7、的重点是处理绘图的控件。有C++/MFC背景的开发人员则比较熟悉这个领域,因为MFC要求开发人员使用GDI更多地控制绘图过程。但是,即使您具备很好的GDI背景知识,也会发现本章有许多新东西。1.GDI+命名空间表30-1列出了GDI+基类的主要命名空间。1045第30章使用GDI+绘图表30-1命名空间说明System.Drawing包含与基本绘图功能有关的大多数类、结构、枚举和委托System.Drawing.Drawing2D为大多数高级2D和矢量绘图操作提供了支持,包括消除锯齿、几何转换和图形路径System.Drawing.Imaging帮

8、助处理图像(位图、GIF文件等)的各种类System.Drawing.Printing把打印机或打印预览窗口作为输出设备时

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。