| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4259 人关注过本帖, 2 人收藏
标题:[转载]帮助C#菜鸟进入GDI+开发
只看楼主 加入收藏
银月
Rank: 1
等 级:新手上路
帖 子:127
专家分:0
注 册:2005-1-2
收藏(2)
 问题点数:0 回复次数:26 
[转载]帮助C#菜鸟进入GDI+开发

前一阶段看到很多网友提问关于设计一些样式独特的按钮,或者要在一些控件上做出一

些图标之类的

东西的问题,往往得到的答复就是一句“用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);

}

}

}

搜索更多相关主题的帖子: GDI 开发 
2006-05-25 13:31
壹日就是壹天
Rank: 1
等 级:新手上路
威 望:1
帖 子:18
专家分:0
注 册:2006-5-25
收藏
得分:0 
感谢~真的是好帖子~

々开心无极限Θ Ξ天道酬勤Д诚信为本ウ
2006-05-25 14:28
idolatry
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2006-5-14
收藏
得分:0 
写的很具体!  不错!

心之彼岸在等你!
2006-05-25 18:23
keikei
Rank: 2
等 级:新手上路
威 望:4
帖 子:152
专家分:0
注 册:2006-5-15
收藏
得分:0 
学习!!!
2006-05-25 18:41
htzz
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2006-3-10
收藏
得分:0 

自己做控件好象很难


2006-05-25 20:32
乱弹琴
Rank: 1
等 级:新手上路
威 望:1
帖 子:1665
专家分:0
注 册:2006-3-7
收藏
得分:0 
多谢楼主分享

男人的謊言可以騙女人的壹夜! 女人的謊言可以騙男人的壹生!
2006-05-26 12:03
an163126
Rank: 1
等 级:新手上路
帖 子:95
专家分:0
注 册:2005-3-19
收藏
得分:0 

收藏了!


 发哥:透在骨里的酷
2006-05-26 12:35
梦幻情缘
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:769
专家分:20
注 册:2005-4-4
收藏
得分:0 
给予支持!
2006-05-26 20:33
银月
Rank: 1
等 级:新手上路
帖 子:127
专家分:0
注 册:2005-1-2
收藏
得分:0 
我最近在学习GDI+有兴趣的桐子可以讨论,相互学习!

2006-05-27 13:18
workman023
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2006-5-29
收藏
得分:0 

用图形表示很多过程直观而且容易!!
请问楼主,在窗口中想按照已经设计好的曲线如抛物线等画图应该怎么做啊!!
我用直线画,效果不好..

2006-05-29 10:46
快速回复:[转载]帮助C#菜鸟进入GDI+开发
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.044034 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved