Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/116: Рейтинг темы: голосов - 116, средняя оценка - 4.50
1 / 1 / 0
Регистрация: 02.12.2011
Сообщений: 5

Рисование прямоугольника в pictureBox мышью

02.12.2011, 16:49. Показов 21733. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! У меня вот такая проблема.. на форме размещен pictureBox и нужно нарисовать, используя события мыши прямоугольник. Дело в том что DrawRectangle рисует только вниз и в право, а нужно чтобы прямоугольник рисовался во все стороны. В общем то рисование прямоугольника вверх лево реализовать удалось а на остальное мозгов не хватило . Пожалуйста момогите помогите!!

Тут код:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
 private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
        {
            MouseD = true;  // нажата клавиша мыши
            x0 = e.X; // начальные координаты
            y0 = e.Y;
            point1 = e.Location;
            
        } // MouseDown
            
        private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
        {
            if (MouseD) // если нажата клавиша - рисуем
            {   
               x = e.X;// новые координвты мыши
               y = e.Y;
                
                point2 = e.Location;
 
                pictureBox1.Refresh();  
 
                if (MyTool == 'R') 
                {
                    if (point1.X > point2.X && point1.Y > point2.Y)
                    {
                        
                        drawG.DrawRectangle(myPen, new Rectangle(e.X, e.Y, x0-e.X,y0-e.Y));//тут рисует вверх лево
                        
                    }
                    
                    else drawG.DrawRectangle(myPen, new Rectangle(x0, y0, x - x0, y - y0));// тут рисует вниз вправо 
                }
 
              
 
            }
        }  // mouse Move
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.12.2011, 16:49
Ответы с готовыми решениями:

Рисование прямоугольника мышью: фон PictureBox становится черным
Всё просто... необходимо мышью нарисовать прямоугольник на picturebox Прямоугольник рисуется, но фон почему то становится чёрным,...

Рисование круга мышью на PictureBox
Доброго времени суток, в ходе обучения возник вопрос "а как сделать круг" из имеющиеся функции DrawEllipse - необходимо для задания. ...

Рисование прямоугольника на picturebox
На форме находится picturebox, на котором нужно нарисовать прямоугольник. В метод Draw с помощью делегата передаются 2 параметра - высота и...

14
 Аватар для Петррр
6721 / 3570 / 900
Регистрация: 28.10.2010
Сообщений: 5,937
02.12.2011, 17:49
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
using System;
using System.Drawing;
using System.Windows.Forms;
 
public class DrawablePictureBox : Form
{
    bool toDraw = false;
    Point pointBegin, topLeft, bottomRight;
 
    public DrawablePictureBox()
    {
        this.Pic = new PictureBox {
            Top = 10,
            Left = 10,
            Width = this.ClientRectangle.Width - 20,
            Height = this.ClientRectangle.Height - 20,
            Anchor = AnchorStyles.Bottom | AnchorStyles.Left 
            | AnchorStyles.Right | AnchorStyles.Top,
            BackColor = Color.White
        };
        this.Pic.MouseDown += new MouseEventHandler(Pic_MouseDown);
        this.Pic.MouseUp += new MouseEventHandler(Pic_MouseUp);
        this.Pic.MouseMove += new MouseEventHandler(Pic_MouseMove);
        this.Pic.Paint += new PaintEventHandler(Pic_Paint);
        this.Controls.Add(this.Pic);
    }
 
    void Pic_Paint(object sender, PaintEventArgs e)
    {
        e.Graphics.Clear(Color.White);
        e.Graphics.DrawRectangle(new Pen(Color.Black, 3),
            new Rectangle(topLeft.X, topLeft.Y,
                bottomRight.X - topLeft.X, bottomRight.Y - topLeft.Y));
    }
 
    void Pic_MouseMove(object sender, MouseEventArgs e)
    {
        if (toDraw)
        {
            topLeft = new Point {
                X = pointBegin.X < e.X ? pointBegin.X : e.X,
                Y = pointBegin.Y < e.Y ? pointBegin.Y : e.Y
            };
            bottomRight = new Point {
                X = pointBegin.X > e.X ? pointBegin.X : e.X,
                Y = pointBegin.Y > e.Y ? pointBegin.Y : e.Y
            };
            this.Pic.Invalidate();
        }
    }
 
    void Pic_MouseUp(object sender, MouseEventArgs e)
    {
        toDraw = false;
    }
 
    void Pic_MouseDown(object sender, MouseEventArgs e)
    {
        toDraw = true;
        pointBegin = new Point(e.X, e.Y);
    }
 
    public PictureBox Pic
    {
        get;
        set;
    }
    public static void Main()
    {
        Application.EnableVisualStyles();
        Application.Run(new DrawablePictureBox());
    }
}
3
3 / 3 / 1
Регистрация: 06.04.2010
Сообщений: 20
03.12.2011, 04:05
Петр, попробовала вставить ваш код в свою прогу. Возникли небольшие проблемы:
В общем, мне надо, чтобы прямоугольник можно было рисовать после нажатия кнопки:
C#
1
2
3
4
5
private void toolStripButton9_Click(object sender, EventArgs e)
        {
            doDraw2 = true;
            
        }
Все остальные события для MouseMove,MouseDown,MouseUp,pictureBox_P aint делаю в точности, как у вас.

При этом прямоугольник, все равно рисуется даже без нажатия кнопки.
Пробовала сделать так:
C#
1
2
3
4
5
6
private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
        {
if(doDraw2)
{
            pointBegin = new Point(e.X, e.Y);
}
Но тогда прямоугольник отрисовывается некорректно: за начальную точку всегда берется конечная точка предыдущего треугольника. Я предполагаю, что как-то по-другому надо задать начальную точку
C#
1
pointBegin = new Point(e.X, e.Y);
Но как это сделать, ума не приложу. Подскажите, пожалуйста.
1
1 / 1 / 0
Регистрация: 02.12.2011
Сообщений: 5
03.12.2011, 17:51  [ТС]
Ну в общем то поспрашивал у своих коллег и решил проблему.. скинул тут код:

тут задаются начальные координаты:
C#
1
2
3
4
5
6
7
8
9
10
 private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
        {
            MouseD = true;  // когда нажата кнопка мыши
            // начальные координаты
            x0 = e.X;
            y0 = e.Y;
           
           
 
       } // MouseDown

Когда мышь движется, то:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
 private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
        {
            if (MouseD) // если нажата клавиша то рисуем
            {   
               x = e.X;// новые координаты
               y = e.Y;
                
               
 
                pictureBox1.Refresh();  // обновление
 
                if (MyTool == 'R') // Rectangle черновик
                {
                    if (x0> e.X && y0 > e.Y)
                    {
                        
                        drawG.DrawRectangle(myPen, new Rectangle(e.X, e.Y, x0-e.X,y0-e.Y));
                        
                    }
                    else if (point1.Y > point2.Y && point1.X < point2.X)
                    {
                        
                       drawG.DrawRectangle(myPen, new Rectangle(x0,e.Y ,Math.Abs(e.X-x0),Math.Abs(e.Y-y0)));
                    }
                    else if (x0 > e.X && y0 < e.Y)
                    {
                        drawG.DrawRectangle(myPen, new Rectangle(x, y0, Math.Abs(e.X - x0), Math.Abs(e.Y - y0)));
                    }
                    else drawG.DrawRectangle(myPen, new Rectangle(x0, y0, x - x0, y - y0));
                    
                }
 
            }
        }  // mouse Move

Ну а тут уже на событии MouseUp оставляем рисунок на Picturebox:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
        {
            MouseD = false;     // отпущена кнопка мыши
           
            x = e.X;  // конечные координаты миши
            y = e.Y;
 
            if (MyTool == 'R' && MyToolType == 'F')  // Rectangle (Filled)
            {
                picG.FillRectangle(myBrush, new Rectangle(x0, y0, x - x0, y - y0));
                picG.DrawRectangle(myPen, new Rectangle(x0, y0, x - x0, y - y0));
            }
            else if (MyTool == 'R' && MyToolType == 'L')  // Rectangle (Line only)
            {
 
                if (x0 > e.X && y0 > e.Y)
                {
 
                    picG.DrawRectangle(myPen, new Rectangle(e.X, e.Y, x0 - e.X, y0 - e.Y));
 
                }
                else if (point1.Y > point2.Y && point1.X < point2.X)
                {
 
                    picG.DrawRectangle(myPen, new Rectangle(x0, e.Y, Math.Abs(e.X - x0), Math.Abs(e.Y - y0)));
                }
                else if (x0 > e.X && y0 < e.Y)
                {
                    picG.DrawRectangle(myPen, new Rectangle(x, y0, Math.Abs(e.X - x0), Math.Abs(e.Y - y0)));
                }
                else picG.DrawRectangle(myPen, new Rectangle(x0, y0, x - x0, y - y0));
            }
 
 
            pictureBox1.Refresh();
 
        }  // MouseUp
Дело в том что при рисовании вверх право и вниз лево возникали некие несоответствия при подщете координат, т.е какие то из x,y или х0,у0 становились отрицательными, но все помогло исправить функция Math.Abs();

Вот:
C#
1
2
3
4
5
6
7
8
9
 else if (point1.Y > point2.Y && point1.X < point2.X)
                {
 
                    picG.DrawRectangle(myPen, new Rectangle(x0, e.Y, Math.Abs(e.X - x0), Math.Abs(e.Y - y0)));
                }
                else if (x0 > e.X && y0 < e.Y)
                {
                    picG.DrawRectangle(myPen, new Rectangle(x, y0, Math.Abs(e.X - x0), Math.Abs(e.Y - y0)));
                }
1
3 / 3 / 1
Регистрация: 06.04.2010
Сообщений: 20
05.12.2011, 19:09
TheMrCPlay, пожалуйста, скиньте ту часть кода, где определяются переменные, потому что не совсем понятно, что такое drawG и picG, и чем они отличаются.
0
1 / 1 / 0
Регистрация: 02.12.2011
Сообщений: 5
09.12.2011, 19:08  [ТС]
Прошу прощение что так поздно отвечаю! Но лучше поздно, чем никогда

Тут определение переменных:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        public Point point1, point2;
        
           
 
 
        char MyTool = 'N', MyToolType = 'N'; // инструмент и его тип
        bool MouseD = false;                // нажата ли кнопка мыши
        int x0=0, y0=0, x=0, y=0;           // старые и новые координаты
        System.Drawing.Graphics drawG,picG;     // drawG - "черновик" , picG - результат 
        System.Drawing.SolidBrush myBrush;  // выбрана кисть
        System.Drawing.Pen myPen;           // выбран ручка
 
        ...
Добавлено через 4 минуты
Цитата Сообщение от GEIN Посмотреть сообщение
TheMrCPlay, пожалуйста, скиньте ту часть кода, где определяются переменные, потому что не совсем понятно, что такое drawG и picG, и чем они отличаются.
DrawG-обозначил как черновк т.е как в паинте пытаешься нарисовать какую либо фигуру, когда ты ее тянешь
A PicG - когда уже на pictureBox рисуется фигура тех размеров которая тебе нужна
0
 Аватар для skilllab
296 / 236 / 58
Регистрация: 03.02.2011
Сообщений: 2,045
Записей в блоге: 1
11.05.2012, 09:06
Петррр, такой вопрос. А если поместить в picturebox картинку, у которой размер подогнан под размер picturebox-а (что-то вроде отмасштабирована), то как можно узнать (пересчитать) начальную и конечную точки прямоугольника?

Т.е. после рисования прямоугольника моя программа должна будет вставить некий объект в файл, а чтобы получить область вставки и не перекрыть уже существующие объекты, как раз и хочу воспользоваться вашим методом рисования на превьюшке, для получения начальной и конечной точки области.
Спасибо.
0
 Аватар для skilllab
296 / 236 / 58
Регистрация: 03.02.2011
Сообщений: 2,045
Записей в блоге: 1
15.05.2012, 10:01
Петррр, ваш код работает на ура. Но! можно ли каким нибудь образом привязать координаты к левому нижнему углу? Т.е. переназначить точку отсчета (ну или хотя бы конвертация текущих к нижнему левому "нулю").

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
private void Pic_Paint(object sender, PaintEventArgs e)
        {
            //e.Graphics.Clear(Color.White);
            e.Graphics.DrawRectangle(new Pen(Color.DarkOrange, 2),
                new System.Drawing.Rectangle(topLeft.X, topLeft.Y,
                    bottomRight.X - topLeft.X, bottomRight.Y - topLeft.Y));
            dotLeftX = topLeft.X;
            X1.Text = "X1: " + dotLeftX.ToString();
            dotLeftY = topLeft.Y;
            Y1.Text = "Y1: " + dotLeftY.ToString();
            dotRightX = bottomRight.X;
            X2.Text = "X2: " + dotRightX.ToString();
            dotRightY = bottomRight.Y;
            Y2.Text = "Y2: " + dotRightY.ToString();
 
        }
Миниатюры
Рисование прямоугольника в pictureBox мышью  
1
 Аватар для Titkoff
1 / 1 / 1
Регистрация: 14.11.2012
Сообщений: 42
25.11.2012, 20:41
Цитата Сообщение от TheMrCPlay Посмотреть сообщение
Прошу прощение что так поздно отвечаю! Но лучше поздно, чем никогда

Тут определение переменных:

Добавлено через 4 минуты


DrawG-обозначил как черновк т.е как в паинте пытаешься нарисовать какую либо фигуру, когда ты ее тянешь
A PicG - когда уже на pictureBox рисуется фигура тех размеров которая тебе нужна
Объясните, пожалуста, как инициализированы DrawG и PicG
0
9 / 9 / 5
Регистрация: 10.05.2012
Сообщений: 292
30.01.2013, 14:07
Цитата Сообщение от Titkoff Посмотреть сообщение
Объясните, пожалуста, как инициализированы DrawG и PicG
вопрос ещё актуален =)

Как инициализировать эти объекты?
0
2 / 2 / 0
Регистрация: 31.07.2012
Сообщений: 71
12.04.2013, 07:30
как инициализировать PictureBox?
0
0 / 0 / 0
Регистрация: 24.02.2016
Сообщений: 3
09.04.2016, 20:07
Попробуйте такой вариант:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace DrawRectangle1
{
    public partial class Form1 : Form
    {
        bool isClicked = false; // идентификатор нажатия кнопки мыши
 
        int X = 0;
        int Y = 0;
 
        int X1 = 0;
        int Y1 = 0;
 
        Point[] points = new Point[8];
 
        public Form1()
        {
            InitializeComponent();
            pictureBox1.Cursor = Cursors.Cross; // в границах pictureBox курсор в виде перекрестия
            
        }
 
        private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
        {
 
            isClicked = true;
            
            X = e.X;
            Y = e.Y;
 
        }
 
        private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
        {
            if (isClicked)
            {
                X1 = e.X;
                Y1 = e.Y;
                pictureBox1.Invalidate(); //если кнопка зажата, то перерисовываем прямоугольник 
            }
 
        }
 
        private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
        {
            isClicked = false;
        }
 
        private void pictureBox1_Paint(object sender, PaintEventArgs e)
        {
            Pen pen = new Pen(Color.Black);
 
            points[0] = new Point(X, Y);
            points[1] = new Point(X1, Y);
            points[2] = new Point(X1, Y);
            points[3] = new Point(X1, Y1);
            points[4] = new Point(X1, Y1);
            points[5] = new Point(X, Y1);
            points[6] = new Point(X, Y1);
            points[7] = new Point(X, Y);
 
                e.Graphics.DrawLines(pen, points);  //рисуем соединенные линии по координатам точек
                                                                //каждая последующая выходит из предыдущей
 
        }
    }
}
Миниатюры
Рисование прямоугольника в pictureBox мышью  
0
0 / 0 / 0
Регистрация: 24.02.2016
Сообщений: 3
16.04.2016, 19:35
В проекте нарисованный прямоугольник можно еще перемещать.
Вложения
Тип файла: rar DrawRectangle2.rar (39.1 Кб, 221 просмотров)
0
0 / 0 / 0
Регистрация: 19.11.2014
Сообщений: 78
24.05.2020, 17:25
На проект gogo1488

а как сделать чтобы прямоугольники оставались на pictureBox ? Список то я создал и строчку в событие MouseUp дописал

C#
1
boxes.Add(new Rectangle(currPoint.X, currPoint.Y, prevPoint.X - currPoint.X, prevPoint.Y - currPoint.Y));
я не понимаю где я должен foreach прописать для списка

Добавлено через 2 минуты
С линиями все работает они остаются на pictureBox

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
class Line
    {
        public Point p1;
        public Point p2;
 
        public Line(int x1, int y1, int x2, int y2)
            : this(new Point(x1, y1), new Point(x2, y2))
        { }
 
        public Line(Point p1, Point p2)
        {
            this.p1 = p1;
            this.p2 = p2;
        }
    }
 
    public partial class Form1 : Form
    {
        bool isClicked = false;
        //int X = 0, Y = 0;
        Point currPoint;
        //int X1 = 0, Y1 = 0;
        Point prevPoint;
        List<Line> lines;
 
        public Form1()
        {
            InitializeComponent();
            currPoint = new Point(0, 0);
            prevPoint = new Point(0, 0);
            lines = new List<Line>();
        }
 
        private void pictureBox1_Paint(object sender, PaintEventArgs e)
        {
            Pen pen = new Pen(Color.Black, 4);
            e.Graphics.DrawLine(pen, currPoint, prevPoint);
            foreach (Line item in lines)            
                e.Graphics.DrawLine(pen, item.p1, item.p2);            
        }
 
        private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
        {
            isClicked = true;
            currPoint = e.Location;
        }
 
        private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
        {
            if (isClicked)
            {
                prevPoint = e.Location;
                pictureBox1.Invalidate();
            }
        }
 
        private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
        {
            isClicked = false;
            lines.Add(new Line(currPoint, prevPoint));
        }
    }
Добавлено через 2 часа 14 минут
а если рисовать на Bitmap а куда я должен написать
C#
1
pictureBox1.Image = bmp;
??

Добавлено через 1 час 53 минуты
о....заработало.....

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
    public partial class Form1 : Form
    {
        Rectangle rect;
        Point currPoint, prevPoint;
        bool isDrawing;
        Bitmap bmp;
        Graphics graph;
        List<Rectangle> boxes; 
 
        public Form1()
        {
            InitializeComponent();
            bmp = new Bitmap(pictureBox1.Width, pictureBox1.Height);
            graph = Graphics.FromImage(bmp);
            boxes = new List<Rectangle>();
        }
 
        Rectangle GetRectangle()
        {
            rect = new Rectangle();
            rect.X = Math.Min(currPoint.X, prevPoint.X);
            rect.Y = Math.Min(currPoint.Y, prevPoint.Y);
            rect.Width = Math.Abs(currPoint.X - prevPoint.X);
            rect.Height = Math.Abs(currPoint.Y - prevPoint.Y);
            return rect;
        }
 
        private void pictureBox1_Paint(object sender, PaintEventArgs e)
        {
            if (rect != null)                
                e.Graphics.DrawRectangle(Pens.Black, GetRectangle());
            foreach (Rectangle item in boxes)            
                   e.Graphics.DrawRectangle(Pens.Black, item);            
        }
 
        private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
        {
            isDrawing = true;
            currPoint = e.Location;
        }
 
        private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
        {
            if (isDrawing)
            {
                prevPoint = e.Location;
                Refresh();
            }
        }
 
        private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
        {
            isDrawing = false;
            prevPoint = e.Location;
            boxes.Add(new Rectangle(rect.X, rect.Y, rect.Width, rect.Height));
        }
    }
Добавлено через 2 минуты
все равно не понимаю как вместо e.Graphics использовать Graphics graph. куда я должен написать
C#
1
pictureBox1.Image = bmp;
?

Добавлено через 2 минуты
а вот эти две строчки
C#
1
2
                Refresh();
                pictureBox1.Invalidate();
это одно и тоже что ли?
0
 Аватар для ViterAlex
8951 / 4863 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
24.05.2020, 17:45
Цитата Сообщение от jashik Посмотреть сообщение
все равно не понимаю как вместо e.Graphics использовать Graphics graph. куда я должен написать
В pictureBox1_Paint ты рисуешь только во время движения. А всё из списка boxes рисуешь на Bitmap в конце pictureBox1_MouseUp:
C#
1
2
3
4
5
6
using (var g = Graphics.FromImage(bmp))
{
    foreach (Rectangle item in boxes)            
        g.DrawRectangle(Pens.Black, item);
}
pictureBox1.Image = bmp;
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.05.2020, 17:45
Помогаю со студенческими работами здесь

Рисование прямоугольника на PictureBox с помощью мыши
Добрый день. Можете подсказать элементарное рисование на PictureBox прямоугольника мышью. Заранее благодарю за оказанную помощь.

Реализовать возможность рисования прямоугольника мышью
Реализовать возможность рисования прямоугольника мышью на компоненте PaintBox ( события OnMouseDown и OnMouseUp).

Рисование мышью
Всем привет. Написал прогу для рисования мышью (пока только прямые линии) на c++ (MS VS 2005). Рисуется так: нажал клавишу мыши, передвинул...

Рисование мышью
Как сделать так чтобы при зажатой клавиши мышки ведя по форме за курсором появлялась линия? я получаю координаты курсора(через событие ...

Рисование линии мышью
При нажатии клавиши мыши должно начаться рисование линии: if (InputEvent.BUTTON1_MASK) { Graphics g =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru