Home

GDI+ Tutorials: Solid Brushes

 

Simple Colored Brushes

Like a pen, the primary characteristic of a brush is its color. To help you create a simple brush, the System::Drawing namespace provides the static sealed Brushes class. The only feature this class provides is the ability to specify a color to use on a brush. As a static class, you never have to instantiate it.

To create a simple brush whose only information is provided by its color, call the Brushes class and access a color by qualifying it with the name of the class. Each color is provided by its name as a property. Here is an example of using the class:

System::Void Form1_Paint(System::Object^  sender, 
			 System::Windows::Forms::PaintEventArgs^  e)
{
    array<Point> ^ pt = { Point(10,  22), Point(188, 246),
                          Point(280, 192), Point(250,  48) };

    e->Graphics->FillClosedCurve(Brushes::BlanchedAlmond, pt);
    e->Graphics->DrawClosedCurve(Pens::Blue, pt);
}

This would produce:

Creating a Solid Brush

The simplest type of brush is referred to as solid. This type of brush is simply equipped with a color and it is used to fill a shape with it. To get a solid brush, you use the SolidBrush class defined in the System::Drawing namespace. It has only one constructor declared with the following syntax:

public:
    SolidBrush(Color color);

The color passed as argument must be a valid definition of a Color:: Here is an example:

System::Void Form1_Paint(System::Object ^  sender, 
			 System::Windows::Forms::PaintEventArgs ^ e)
{
    SolidBrush ^ brushBlue = gcnew SolidBrush(Color::Blue);

    e->Graphics->FillRectangle(brushBlue, 20, 20, 200, 160);
}

This would produce:

If you plan to use different colors to fill different shapes, you don't have to create a new brush for each shape. At any time, before re-using the same brush previously defined, you can simply change its Color:: For this reason, the SolidBrush class is equipped with the Color property. Here is an example of using it:

System::Void Form1_Paint(System::Object ^  sender, 
			 System::Windows::Forms::PaintEventArgs ^  e)
{
    SolidBrush ^ colorizer = gcnew SolidBrush(Color::Lime);
    e->Graphics->FillRectangle(colorizer, 10, 10, 120, 120);

    colorizer->Color = Color::Salmon;
    e->Graphics->FillRectangle(colorizer, 140, 10, 120, 120);

    colorizer->Color = Color::Aqua;
    e->Graphics->FillRectangle(colorizer, 10, 140, 120, 120);

    colorizer->Color = Color::Navy;
    e->Graphics->FillRectangle(colorizer, 140, 140, 120, 120);
}

This would produce:

Solid Brushes

Like most objects used in graphics programming, a brush consumes the computer resources. Therefore, after using it, you can free the resources it was using by calling the Dispose() method. Here is an example:

System::Void Form1_Paint(System::Object ^  sender, 
			 System::Windows::Forms::PaintEventArgs ^  e)
{
    SolidBrush ^ colorizer = gcnew SolidBrush(Color::Lime);
    e->Graphics->FillRectangle(colorizer, 10, 10, 120, 120);

    colorizer->Color = Color::Salmon;
    e->Graphics->FillRectangle(colorizer, 140, 10, 120, 120);

    colorizer->Color = Color::Aqua;
    e->Graphics->FillRectangle(colorizer, 10, 140, 120, 120);

    colorizer->Color = Color::Navy;
    e->Graphics->FillRectangle(colorizer, 140, 140, 120, 120);

    colorizer.Dispose();
}
 

Home Copyright © 2007-2012 FunctionX