На этом шаге мы рассмотрим особенности использования этой кисти.
Кисти используются для закраски внутренних областей геометрических фигур. Например, инструкция
e->Graphics->FillRectangle(Brushes::DeepSkyBlue, x, y, w, h);
В приведенном примере Brushes::DeepSkyBlue — это стандартная кисть темно-небесного цвета. Параметры x, y определяют положение прямоугольника; w, h — его размер.
В распоряжении программиста есть следующие типы кистей:
Кисть | Цвет |
---|---|
Brushes::Red | Красный |
Brushes::Orange | Оранжевый |
Brushes::Yellow | Желтый |
Brushes::Green | Зеленый |
Brushes::LightBlue | Голубой |
Brushes::Blue | Синий |
Brushes::Purple | Пурпурный |
Brushes::Black | Черный |
Brushes::LightGray | Серый |
Brushes::White | Белый |
Brushes::Transparent | Прозрачный |
Проиллюстрируем использование стандартной кисти.
Создадим приложение, где можно будет выбирать кисть из списка, и по нажатию на кнопку Закрасить будет отображаться закрашенный прямоугольник выбранной кистью (рисунок 1).
Рис.1. Приложение на стадии проектирования
Приведем текст приложения.
. . . . Form1(void) { InitializeComponent(); // //TODO: добавьте код конструктора // // установка начального цвета comboBox1->SelectedIndex = 0; // создание массива кистей hBrsh = gcnew array<Brush^>(141) { Brushes::AliceBlue, Brushes::AntiqueWhite, Brushes::Aqua, Brushes::Aquamarine, Brushes::Azure, Brushes::Beige, Brushes::Bisque, Brushes::Black, Brushes::BlanchedAlmond, Brushes::Blue, Brushes::BlueViolet, Brushes::Brown, Brushes::BurlyWood, Brushes::CadetBlue, Brushes::Chartreuse,Brushes::Chocolate, Brushes::Coral, Brushes::CornflowerBlue, Brushes::Cornsilk, Brushes::Crimson, Brushes::Cyan, Brushes::DarkBlue, Brushes::DarkCyan, Brushes::DarkGoldenrod, Brushes::DarkGray, Brushes::DarkGreen, Brushes::DarkKhaki, Brushes::DarkMagenta, Brushes::DarkOliveGreen, Brushes::DarkOrange, Brushes::DarkOrchid, Brushes::DarkRed, Brushes::DarkSalmon, Brushes::DarkSeaGreen, Brushes::DarkSlateBlue, Brushes::DarkSlateGray, Brushes::DarkTurquoise, Brushes::DarkViolet, Brushes::DeepPink, Brushes::DeepSkyBlue, Brushes::DimGray, Brushes::DodgerBlue, Brushes::Firebrick, Brushes::FloralWhite, Brushes::ForestGreen, Brushes::Fuchsia, Brushes::Gainsboro, Brushes::GhostWhite, Brushes::Gold, Brushes::Goldenrod, Brushes::Gray, Brushes::Green, Brushes::GreenYellow, Brushes::Honeydew, Brushes::HotPink, Brushes::IndianRed, Brushes::Indigo, Brushes::Ivory, Brushes::Khaki, Brushes::Lavender, Brushes::LavenderBlush, Brushes::LawnGreen, Brushes::LemonChiffon, Brushes::LightBlue, Brushes::LightCoral, Brushes::LightCyan, Brushes::LightGoldenrodYellow, Brushes::LightGray, Brushes::LightGreen, Brushes::LightPink, Brushes::LightSalmon, Brushes::LightSeaGreen, Brushes::LightSkyBlue, Brushes::LightSlateGray, Brushes::LightSteelBlue, Brushes::LightYellow, Brushes::Lime, Brushes::LimeGreen, Brushes::Linen, Brushes::Magenta, Brushes::Maroon, Brushes::MediumAquamarine, Brushes::MediumBlue, Brushes::MediumOrchid, Brushes::MediumPurple, Brushes::MediumSeaGreen, Brushes::MediumSlateBlue, Brushes::MediumSpringGreen, Brushes::MediumTurquoise, Brushes::MediumVioletRed, Brushes::MidnightBlue, Brushes::MintCream, Brushes::MistyRose, Brushes::Moccasin, Brushes::NavajoWhite, Brushes::Navy, Brushes::OldLace, Brushes::Olive, Brushes::OliveDrab, Brushes::Orange, Brushes::OrangeRed, Brushes::Orchid, Brushes::PaleGoldenrod, Brushes::PaleGreen, Brushes::PaleTurquoise, Brushes::PaleVioletRed, Brushes::PapayaWhip, Brushes::PeachPuff, Brushes::Peru, Brushes::Pink, Brushes::Plum, Brushes::PowderBlue, Brushes::Purple, Brushes::Red, Brushes::RosyBrown, Brushes::RoyalBlue, Brushes::SaddleBrown, Brushes::Salmon, Brushes::SandyBrown, Brushes::SeaGreen, Brushes::SeaShell, Brushes::Sienna, Brushes::Silver, Brushes::SkyBlue, Brushes::SlateBlue, Brushes::SlateGray, Brushes::Snow, Brushes::SpringGreen, Brushes::SteelBlue, Brushes::Tan, Brushes::Teal, Brushes::Thistle, Brushes::Tomato, Brushes::Transparent, Brushes::Turquoise, Brushes::Violet, Brushes::Wheat, Brushes::White, Brushes::WhiteSmoke, Brushes::Yellow, Brushes::YellowGreen }; } . . . . private: array <Brush^> ^hBrsh; // массив кистей // закраска private: System::Void pictureBox1_Paint(System::Object^ sender, System::Windows::Forms::PaintEventArgs^ e) { // изображение прямоугольника выбранной кистью e->Graphics->FillRectangle( hBrsh[comboBox1->SelectedIndex], 10, 10, 190, 160); } // обработчик нажатия на кнопку Закрасить private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { // обращение к функции Paint() компонента pictureBox pictureBox1->Invalidate(); }
Результат работы приложения приведен на рисунке 2.
Рис.2. Результат работы приложения
Принцип работы этого приложения следующий. Сначала создается массив кистей hBrush. Соотвествующие имена помещаются в ComboBox. При выборе имени из компонента ComboBox возвращается номер, который является номером соотвествующей кисти из массива hBrush. Выбранная кисть используется в обработчике pictureBox1_Paint для отрисовки прямоугольника.
На следующем шаге мы продолжим изучение этого вопроса.