帮助C#菜鸟进入GDI+开发

转载 2004年07月29日 20:42:00

前一阶段看到很多网友提问关于设计一些样式独特的按钮,或者要在一些控件上做出一
些图标之类的
东西的问题,往往得到的答复就是一句“用GDI+”那么什么叫做GDI+呢?如何应用GDI+
呢?今天给大家
做一个小例子,希望对大家有帮助:

1 GDI+的定义:GraphicDevice Interface Plus 就是图形装置接口,我们通过这个借
口可以对控件进行
一些设计,。

2 一个小例子:如何用GDI+来修改一个按钮的样式:


第一步,我们要建立一个类——Button_paint,这个类就是我们以后要用的,我们自己
设计的按钮。

第二步,我们需要引用两个组件进来:

一个是 System.Drawing.dll,这个是GDI+所需要的组件。

另外一个是 System.Windows.Forms.dll ,我们需要这个组件,来重写里边的按钮对
象。

第三步,现在开始进入编写代码,首先要做的是把刚才引用的组件调入我们的程序:

using System.Drawing;
using System.Windows.Forms;

然后我们要在这里类里边继承原始的Button对象,以便于对这个对象进行重写,代码如
下:

public class Button_paint:System.Windows.Forms.Button

然后在这个函数的进入点 public Button_paint()里边加入一个代理,
就是让这个类被调用的时候,当执行图像生成部分this.Paint的时候自动激活
我们自己所设计的这个方法button_paint:

this.Paint+=new System.Windows.Forms.PaintEventHandler(button_paint);

然后我们写一下button_paint这个方法,把这个绘画的代理传入这个方法,
后边边开始就是正规的GDI+编程了。

private void button_paint(object sende,System.Windows.Forms.PaintEventArgs
e)


在button_paint 这个方法里边,我们可以给这个按钮加入一些简单的图形修饰,方法
如下:


首先我们定义一根画笔,我们需要用它来进行图像的绘画,这根画笔我们用红色吧:

Pen pen=new Pen(Color.Red);

然后定义画笔的宽度:

pen.Width=8;

好的,我们现在开始画了,操作的对象自然就是我们传递进来的这个需要修饰的对象 e

让我们先画条直线:

e.Graphics.DrawLine(pen,7,4,7,this.Height-4);

这个没有必要多解释了吧?

然后再划一个椭圆

e.Graphics.DrawEllipse(pen,this.Width-16,6,8,8);

然后把这个类编译好,然后引用到我们的应用程序中调用吧,这时候就可以看到我们涉
及的这个对象的效果了。

 

具体的我做的这个例子的代码如下:

using System;
using System.Drawing;
using System.Windows.Forms;

namespace Button_paint
{
 public class Button_paint:System.Windows.Forms.Button
 {
  public Button_paint()
  {
   this.Paint+=new System.Windows.Forms.PaintEventHandler(button_paint);
  }
  private void button_paint(object sende,System.Windows.Forms.PaintEventArgs
e)
  {
   Pen pen=new Pen(Color.Red);
   pen.Width=8;

   e.Graphics.DrawLine(pen,7,4,7,this.Height-4);
   e.Graphics.DrawEllipse(pen,this.Width-16,6,8,8);
  }
 }
}


希望以上的说明对大家有所帮助,如果您觉得这篇文章对您有所帮助,希望您能回复一
下,我好决定是否继续下下去。

--

__________

我的个人网站:

  www.yt-e.com www.cha8.com www.1liao.com

                  老k

C#中GDI+编程10个基本技巧二

5、渐变色填充 需要使用两个刷子: 线性梯度刷子(LinearGradientBrush) 路径梯度刷子(PathGuadientBrush) private void but...
  • SunCherryDream
  • SunCherryDream
  • 2015年05月13日 16:35
  • 2781

C# GDI+编程(一)

GDI+基础知识 首先你要有点基本的几何概念。例如大家常说的点动成线,线动成面,面动成体。两点确定一条直线,不在同一直线上的三点确定一个圆(或者平面),诸如此类。然后你要理解的是,对应于几何概念...
  • albert528108
  • albert528108
  • 2013年08月27日 20:36
  • 899

GDI+基础知识 反锯齿技术

锯齿效果是绘图表面中像素的粒子化造成的。例如绘制一条对角线时,基于像素的本质只能是图形类似于对角线,如图阶梯状效果: 在绘制曲线和文本时也会出现这种问题,都是因为屏幕上的像素使图像呈现这个锯齿状...
  • u011582377
  • u011582377
  • 2014年02月18日 10:39
  • 1777

C#学习之GDI + 图形编程基础(一)

----------图形概述         GDI+是如何工作的呢?为了弄清这个问题,让我们来分析一个示例—绘制一条线段。实质上,一条线段就是一个从一个开始位置(X0,Y0)到一个结束位置(Xn,Y...
  • HK_5788
  • HK_5788
  • 2015年10月16日 17:44
  • 954

C# GDI+图形程序设计--看书笔记

一、理解GDI+  GDI+是一个库,它提供了一个接口,此接口允许程序员编写与打印机、监视器或文件等图形设备进行交互的windows和web图形应用程序。其实是由C++编写的一个类,供我们调用。在程...
  • a771948524
  • a771948524
  • 2013年06月22日 16:19
  • 1450

C#实现GDI+基本图的缩放、拖拽、移动

C#实现GDI+基本图元的缩放、拖拽、移动 C#实现GDI+基本图元的缩放、拖拽、移动示例代码如下: using System; using System.Collections.Generi...
  • LongtengGensSupreme
  • LongtengGensSupreme
  • 2016年07月16日 14:59
  • 2182

C#中基于GDI+(Graphics)图像处理系列之前言

前言图像处理是开发工程师们学习某种语言入门时就会遇到的问题,笔者刚开始接触C#使用GDI+进行图像处理,觉得太简单了,就没有深入研究,随着工作经验的积累,踏遍若干坑以后突然觉得还是有必要将这块的知识好...
  • lhtzbj12
  • lhtzbj12
  • 2017年01月05日 22:24
  • 2757

GDI+学习------之渐变色

Graphics graphics(dc.GetSafeHdc()); graphics.Clear(Color::White); //定义三种参与渐变的色彩 Color colors[] = {...
  • jiangqin115
  • jiangqin115
  • 2015年03月19日 16:55
  • 951

C# winform 方法实现 微软窗口的帮助文档按钮和版本说明按钮

在使用Windows操作系统的时候,微软的软件一般都会有帮助按钮和版本按钮这一个功能,功能如下图。 通过这两张图不难发现这两个按钮操作的特点。 帮助按钮操作点击后,可操作主界面,再次点...
  • langwangak
  • langwangak
  • 2017年12月27日 11:14
  • 111

c#使用GDI+简单绘图

private void Form1_Paint(object sender, PaintEventArgs e) { Graphics g = e.Graphics; //创建画板,这里的画板是由...
  • smartsmile2012
  • smartsmile2012
  • 2014年06月12日 15:49
  • 3640
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:帮助C#菜鸟进入GDI+开发
举报原因:
原因补充:

(最多只允许输入30个字)