Gdi+ 畫刷

 畫刷和填充的形狀

閉合的形狀(例如,矩形或橢圓)由輪廓和內部組成。輪廓用鋼筆繪製,內部用畫刷填充。GDI+提供了幾種用於填充閉合形狀內部的畫刷類:SolidBrush、HatchBrush、TextureBrush和GradientBrush。所有這些類都是從Brush類繼承的。

1.使用實心畫刷

要填充閉合圖形,需要有Graphics對象和Brush對象。Graphics對象提供 FillRectangle和FillEllipse這樣的方法,Brush對象存儲填充的屬性,如顏色和圖案。Brush對象作爲參數之一被傳遞到填充方法。例如用純紅色填充橢圓:

SolidBrush sb(Color(100,100,100,100));
g.FillEllipse(&sb,10,10,100,100);

效果圖:

2.使用陰影畫刷

用陰影畫刷填充圖形時,要指定前景色、背景色和陰影樣式。前景色是陰影的顏色。

    HatchBrush hb(HatchStyleHorizontalBrick , Color.Black, Color.Gray);
    g.FillRectangle(&hb,50,150,150,120);

GDI+提供了50多種陰影樣式

效果圖:

3.使用紋理畫刷

有了紋理畫刷,就可以用位圖中存儲的圖案來填充圖形。例如,假定在磁盤中存儲了一個名爲MyTexture.bmp的圖片,下面的代碼通過使用MyTexture.bmp中的圖片來填充橢圓。

Image myImage(L"brush.bmp");
TextureBrush th (&myImage); 
g.FillEllipse(&th, 50300150120);

效果:

4.使用漸變畫刷

GDI+提供兩種漸變畫刷:線性和路徑。可以使用線性漸變畫刷來用顏色(在橫向、縱向或斜向移過圖形時會逐漸變化的顏色)填充圖形。

下面的示例用水平漸變畫刷填充一個橢圓,當從橢圓的左邊緣向右邊緣移動時畫刷顏色會由藍變綠。

LinearGradientBrush lgb(  
        Point(50,450),
        Point(200,450),
        Color.Blue,                   
        Color.Green);  
g.FillEllipse(&lgb,50,450,150,120);

效果圖:

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章