Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 62, средняя оценка - 4.89
HIMen
4119 / 1368 / 39
Регистрация: 12.04.2009
Сообщений: 2,346
#1

Как рисовать в pictureBox - C++

15.07.2009, 22:37. Просмотров 7955. Ответов 8
Метки нет (Все метки)

Никак не могу понять, как рисовать в pictureBox.
Покажите, пожалуйста, на примере.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kostarev
1 / 1 / 0
Регистрация: 15.07.2009
Сообщений: 25
15.07.2009, 22:46     Как рисовать в pictureBox #2
А что конкретно вы хотите рисовать
HIMen
4119 / 1368 / 39
Регистрация: 12.04.2009
Сообщений: 2,346
15.07.2009, 22:48  [ТС]     Как рисовать в pictureBox #3
хоть точку
kostarev
1 / 1 / 0
Регистрация: 15.07.2009
Сообщений: 25
15.07.2009, 22:49     Как рисовать в pictureBox #4
Код:

C++
1
2
3
4
5
6
Bitmap btmBack=new Bitmap(100,100);      //изображение
Bitmap btmFront=new Bitmap(100,100);     //фон
Graphics grBack = Graphics.FromImage(btmBack);
Graphics grFront = Graphics.FromImage(btmFront);  //лучше объявить заранее глобально.
PictureBox1.Image = btmFront;
PictureBox1.BackgroundImage = btmBack;
теперь можно рисовать с помощью grBack и grFront, но не забывай обновлять PictureBox1.
например:
Код:
C++
1
2
3
4
5
6
7
8
9
grBack.DrawLine(Pens.Black,x1,y1,x2,y2);
PictureBox1.Refresh();
 
************************************************************
 
PictureBox1->Canvas->Pen->clBlack;//цвет линии/точки (или контура, если речь идет о закрашеной фигуре)
PictureBox1->Canvas->MoveTo(x,y);//переместиться сюда (что бы, например, рисовать линию из этой точки).
PictureBox1->Canvas->LineTo(x,y);//линия от текущей точки до указанный координат
PictureBox1->Canvas->Pixel(x,y);//точка в указанных координатах
HIMen
4119 / 1368 / 39
Регистрация: 12.04.2009
Сообщений: 2,346
15.07.2009, 23:02  [ТС]     Как рисовать в pictureBox #5
C++
1
2
3
4
5
6
7
8
9
10
Bitmap btmBack = gcnew Bitmap(100,100);
Bitmap btmFront = gcnew Bitmap(100,100);
Graphics grBack = Graphics::FromImage(btmBack);
Graphics grFront = Graphics::FromImage(btmFront);
 
this->pictureBox1->Image = btmFront;
this->pictureBox1->BackgroundImage = btmBack;
 
grBack.DrawLine(Pens::Black, 1,2,9,9);
this->pictureBox1->Refresh();
C++
1
2
3
4
Error   1   error C2664: 'System::Drawing::Graphics::FromImage' : cannot convert parameter 1 from 'System::Drawing::Bitmap' to 'System::Drawing::Image ^'   d:\c++\temp\paint\paint\Form1.h 104
Error   2   error C2512: 'System::Drawing::Graphics::Graphics' : no appropriate default constructor available   d:\c++\temp\paint\paint\Form1.h 104
Error   3   error C2664: 'System::Drawing::Graphics::FromImage' : cannot convert parameter 1 from 'System::Drawing::Bitmap' to 'System::Drawing::Image ^'   d:\c++\temp\paint\paint\Form1.h 105
Error   4   error C2512: 'System::Drawing::Graphics::Graphics' : no appropriate default constructor available   d:\c++\temp\paint\paint\Form1.h 105
kostarev
1 / 1 / 0
Регистрация: 15.07.2009
Сообщений: 25
15.07.2009, 23:08     Как рисовать в pictureBox #6
Я же написл объявить глобально Bitmap

начни с простого
C++
1
2
3
4
PictureBox1->Canvas->Pen->clBlack;//цвет линии/точки (или контура, если речь идет о закрашеной фигуре)
PictureBox1->Canvas->MoveTo(x,y);//переместиться сюда (что бы, например, рисовать линию из этой точки).
PictureBox1->Canvas->LineTo(x,y);//линия от текущей точки до указанный координат
PictureBox1->Canvas->Pixel(x,y);//точка в указанных координатах
HIMen
4119 / 1368 / 39
Регистрация: 12.04.2009
Сообщений: 2,346
15.07.2009, 23:18  [ТС]     Как рисовать в pictureBox #7
Пишет, что глобальные или статические переменные не могут иметь управляемый тип Bitmap
AutoBot
290 / 5 / 0
Регистрация: 17.06.2009
Сообщений: 82
16.07.2009, 21:28     Как рисовать в pictureBox #8
Мой C++ не воспринимает этот код (23-28 ошибок) - это для билдера чтоль?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.07.2009, 22:42     Как рисовать в pictureBox
Еще ссылки по теме:

Как рисовать в С++ средствами OpenGL C++
C++ Как рисовать фрактальной графикой в консоли?
Как рисовать графику C++
Как рисовать спрайты, чтобы они отображались прозрачными? C++
Как можно "рисовать" различные линии и фигуры, в том числе и трёхмерные в C++? C++

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

Или воспользуйтесь поиском по форуму:
HIMen
4119 / 1368 / 39
Регистрация: 12.04.2009
Сообщений: 2,346
16.07.2009, 22:42  [ТС]     Как рисовать в pictureBox #9
Для с#
Yandex
Объявления
16.07.2009, 22:42     Как рисовать в pictureBox
Ответ Создать тему
Опции темы

Текущее время: 15:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru