Генератор цветов Уроки C++ Уроки Windows forms Учебники по программированию Уроки HTML Уроки CSS Готовые задания Исходники Полезные программы
регистрация доменов

Дешёвые домены


Уроки Windows Forms C++/C#




Рисование кистью в PictureBox MVS C++/C#

Все знают такую программу, как "Paint". Одно из самых ярких его свойств – это рисование произвольных линий кистью - именно это мы сейчас и сделаем. Для этого нужно перетащить на форму "PictureBox" и выбрать у него свойства "MousDown", ""MausUp" и "MouseMove", если не знаете, как это сделать – обязательно посмотрите этот урок. Алгоритм работы программы следующий: когда пользователь нажимает на левую кнопки мышки, то за курсором начинает прорисовываться огромное количество маленьких квадратиков. Размер этих квадратиков указывается в коде. Так же на форму нужно перенести кнопку "button", которая будет очищать поле рисования. Вид программы очевиден:



Теперь перейдём к коду, обязательно нужно создать переменную типа "bool":


C++


#pragma endregion

bool Drow;

private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) {
this->Text = "Рисование кистью"; button1->Text = "Очистить"; }

private:System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
Graphics ^ Графика = pictureBox1->CreateGraphics();
Графика->Clear(SystemColors::Window);
}

private: System::Void pictureBox1_MouseMove(System::Object^ sender, System::Windows::Forms::MouseEventArgs^ e) {
Graphics^ graf = pictureBox1->CreateGraphics();
if (Drow == true)
{
graf->FillEllipse(Brushes::Violet, e->X, e->Y, 3,3); // толщина кисти
}
}

private: System::Void pictureBox1_MouseDown(System::Object^ sender, System::Windows::Forms::MouseEventArgs^ e) {
Drow = true;
}

private: System::Void pictureBox1_MouseUp(System::Object^ sender, System::Windows::Forms::MouseEventArgs^ e) {
Drow = false;
}

};
}



C#


namespace Risovanie_2_
{
public partial class Form1 : Form
{
bool Drow;
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
this.Text = "Рисование кистью";
button1.Text = "Очистить";
}

private void button1_Click(object sender, EventArgs e)
{
Graphics Графика = pictureBox1.CreateGraphics();
Графика.Clear(SystemColors.Window);
}

private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
Graphics graf = pictureBox1.CreateGraphics();
if (Drow == true)
{
graf.FillEllipse(Brushes.Violet, e.X, e.Y, 3, 3); // толщина кисти
}
}

private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
Drow = true;
}

private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
{
Drow = false;
}

}
}



Результат:


Следующий урок >>