前一階段看到很多網友提問關於設計一些樣式獨特的按鈕,或者要在一些控制項上做出一
些表徵圖之類的
東西的問題,往往得到的回覆就是一句“用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);
}
}
}