知识大全 C# GDI+绘图高级编程

Posted 设备

篇首语:世界之大,而能获得最公平分配的是常识。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 C# GDI+绘图高级编程相关的知识,希望对你有一定的参考价值。

C# GDI+绘图高级编程  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  一般来说 Windows的一个优点(实际上是现代操作系统的优点)是它可以让开发人员不考虑特定设备的细节 例如 不需要理解硬盘设备驱动程序 只需在相关的 NET类中调用合适的方法 就可以编程读写磁盘上的文件 这个规则也适用于绘图 计算机在屏幕上绘图时 把指令发送给视频卡 问题是市面上有几百种不同的视频卡 大多数有不同的指令集合功能 如果把这个i考虑在内 在应用程序中为每个视频卡驱动程序编写在屏幕上绘图的特定代码 这样的应用程序就根本不可能编写出来 这就是为什么在Windows最早的版本中有Windows Graphical Device Interface(GDI)的原因        GDI+提供了一个抽象层 隐藏了不同视频卡之间的区别 这样就可以调用Windows API函数完成指定的任务了 GDI还在内部指出在运行特定的代码时 如果让客户机的视频卡完成要绘制的图形 GDI还可以完成其他任务 大多数计算机都有多个显示设备 监视器 打印机 GDI成功的使应用程序所使用的打印机看起来与屏幕一样 如果要打印某些东西 而不是显示他们 只需告诉系统输出设备是打印机 再用相同的方式调用相同的Windows API函数可以       可以看出DC(设备环境)是一个功能非常强大的对象 在GDI下 所有的绘图工作都必须通过设备环境完成 DC甚至可用于不涉及在屏幕或其他硬件设备上绘图的其他操作 例如在内存中修改图像       GDI开发人员提供了一个相当高级的API 但它仍是一个基于旧Windows API并且有C语言风格函数的API 所以使用起来不是很方便 GDI+在很大程度上是GDI和应用程序之间的一层 提供了更直观 基于继承性的对象模型 尽管GDI+基本上是GDI的一个包装器 但Microsoft已经能通过GDI+提供新的功能了并宣称他又一些性能方面的改进 GDI+命名空间    (不说了 自己看去吧!!!) 设备环境和Graphics对象       GDI使用设备环境(DC)对像识别输出设备 DC对象存储特定设备的信息并把GDI API函数调用转换为要发送给设备的命令 还可以通过DC对象确定对应的设备有什么功能(如打印机是彩色还是黑白的) 如果要求设备完成它不能完成的任务 设备对象就会检测到并采取措施        DC对象不仅可以硬件还可以用作到Windows的一个桥梁 例如如果Windows知道只有一小部分应用程序窗口需要重新绘制 DC就可以捕获和撤销在该地区外的绘图工作 因为DC与Windows的关系非常密切 通过Dc来工作就可以用其他方式简化代码        绘制图形       下面举例来说明如何在应用程序的主窗口中绘图 DisplayAtStartup       创建一个C# 应用程序并在启动窗体时在构造函数中绘制它 这并不是在屏幕上绘图的最佳方式 这个示例并不能在启动后按照需要重新绘制窗体 这样只是不必作太多的工作就可以说明一些问题         首先把窗体的背景色设置为白色 如果使用设计视图设置背景色 系统会自动添加代码                 private void InitializeComponent()                       this AutoScaleBaseSize = new System Drawing Size( );               this BackColor = System Drawing Color White;               this ClientSize = new System Drawing Size( );               this Name = Form ;               this Text = Form ;               接着给Form 构造函数添加代码 使用窗体的CreateGraphics()方法创建一个Graphics对象 其中包括绘图时需要的使用的Windows DC 创建的DC即与显示设备相关也与窗口相关        public Form ()                     InitializeComponent();                            Graphics dc = this CreateGraphics();              this Show();              Pen bluePen = new Pen(Color Blue );              dc DrawRectangle(bluePen );    //矩形              Pen redPen = new Pen(Color Red );              dc DrawEllipse(redPen );        // 椭圆                    然后调用Show()方法显示窗口 必须让窗口立即显示 因为在其显示之前不能作任何工作 (没有绘图的地方)       最后显示一个矩形和椭圆 注意其中坐标(x y)表示从窗口的客户区域左上角向右的X个像素

cha138/Article/program/net/201311/14002

相关参考

知识大全 C# GDI+编程之基础篇

C#GDI+编程之基础篇  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一关于GDI+  从本质

知识大全 C#高级编程读写文本文件实例

C#高级编程读写文本文件实例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  理论上可以使用Fil

知识大全 C#中利用GDI作图解决异或问题

C#中利用GDI作图解决异或问题  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  usingSys

知识大全 C#中使用GDI 让网站新闻标题个性化

C#中使用GDI让网站新闻标题个性化  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  新华网上的今

知识大全 基于VC.NET的GDI+编程之CImage

基于VC.NET的GDI+编程之CImage  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  我们

知识大全 C#语言学习:C#数据报编程之测试程序

C#语言学习:C#数据报编程之测试程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  C#中自定

知识大全 C# 编程规范

C#编程规范  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一命名  用pascal规则来命名方

知识大全 叩开C#之门系列之C#与面向对象编程语言

叩开C#之门系列之C#与面向对象编程语言  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  C#是纯

知识大全 C#编程实现动态生成Word文档

C#编程实现动态生成Word文档  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  如何用C#编程实

知识大全 提高C#编程水平的50个要诀

提高C#编程水平的50个要诀  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  提高C#编程水平的个