Все вопросы связанные с программированием. Языки программирования. Средства разработки.
Ответить
Аватара пользователя
dark_Cs
Не в сети
Частый гость
Частый гость
Сообщения: 497
Зарегистрирован: Сб окт 14, 2006 17:40
Откуда: Новостройка
Контактная информация:

Рисовать в PictureBox. VC++. Не MFC.

Сообщение dark_Cs »

Как нарисовать линию, точку........

Аватара пользователя
tAZAR
Не в сети
Модератор
Модератор
Сообщения: 567
Зарегистрирован: Ср июн 23, 2004 8:13
Откуда: г.Шахты

Re: Рисовать в PictureBox. VC++. Не MFC.

Сообщение tAZAR »

Win32API:
LineTo, MoveTo, Polyline, Arc, ArcTo, PolyBezier, Ellipse, Rectangle, Polygon, Pie, Chord
Вывод текста: TextOut, DrawText
Растры:GetPixel, SetPixel, FloodFill, BitBlt...

Пример взят из какого-то курса лекций, выдумывать было некогда :-)

Код: Выделить всё

//hdc - дескриптор контекста устройства
HPEN hWhitePen, hBlackPen, hOldPen;
HBRUSH hBlackBrush, hOldBrush;

hWhitePen = CreatePen(PS_SOLID, 1, RGB(255, 255, 255));
hBlackPen = CreatePen(PS_SOLID, 1, RGB(0, 0, 0));
hBlackBrush = CreateSolidBrush(RGB(0, 0, 0));


 // нарисовать белый квадрат
hOldPen = SelectObject(hdc, hWhitePen);
MoveTo(hdc, 10, 10);
LineTo(hdc, 100, 10);
LineTo(hdc, 100, 100);
LineTo(hdc, 10, 100);
LineTo(hdc, 10, 10);


 // нарисовать черную окружность
SelectObject(hdc, hBlackPen);
hOldBrush = SelectObject(hdc, hBlackBrush);
Ellipse(hdc, 10, 10, 100, 100);


 // вернуть старый объекты pen и brush в DC
SelectObject(hdc, hOldPen);
SelectObject(hdc, hOldBrush);


 // освободить ресурсы
DeleteObject(hWhitePen);
DeleteObject(hBlackPen);
DeleteObject(hBlackBrush);
Пример: Обязательный полугодовой курс ВМиК МГУ -" Краткое неформальное введение в графику Windows"
Вежневец Владимир (С)

З.Ы. Google рулит ;-)

Аватара пользователя
dark_Cs
Не в сети
Частый гость
Частый гость
Сообщения: 497
Зарегистрирован: Сб окт 14, 2006 17:40
Откуда: Новостройка
Контактная информация:

Сообщение dark_Cs »

Забыл сказать. Мне на .NET.

Аватара пользователя
tAZAR
Не в сети
Модератор
Модератор
Сообщения: 567
Зарегистрирован: Ср июн 23, 2004 8:13
Откуда: г.Шахты

Сообщение tAZAR »

Код: Выделить всё

private void Form1_Paint( object sender, PaintEventArgs e ) {
            e.Graphics.DrawXXXXXX
        }
У Graphics есть методы для рисования.

З.Ы. Это на C#, для С++/CLI ,будет немного измененным. ( -> и gcroot)

Аватара пользователя
dark_Cs
Не в сети
Частый гость
Частый гость
Сообщения: 497
Зарегистрирован: Сб окт 14, 2006 17:40
Откуда: Новостройка
Контактная информация:

Сообщение dark_Cs »

Как отсюда рисовать понятно. У меня проблемы с ручным созданием Graphics и последующим рисованием на нем. Еще мне советовали рисовать сначала в памяти, как это можно сделать?

Аватара пользователя
tAZAR
Не в сети
Модератор
Модератор
Сообщения: 567
Зарегистрирован: Ср июн 23, 2004 8:13
Откуда: г.Шахты

Сообщение tAZAR »

Создать битмап в памяти, рисовать на него, потом блиттить на контрол. Будет мерцать при получении Invalidate. Поэтому, рисовать лучше в OnPaint, если там просто статичное изображение.
Задача какая хоть? Тогда и советы можно будет давать по существу, а не наугад.

Аватара пользователя
andrNZ
Не в сети
Новичок
Новичок
Сообщения: 46
Зарегистрирован: Ср окт 03, 2007 17:24
Откуда: Из Мира Идей
Контактная информация:

Сообщение andrNZ »

Люди, а где можно найти материалы для представления доклада-курсовой по теме "тенденции развития распределеных вычислительных сред"???плиз очень нада!!напишите в асю 263666512
<h6>кто тут?!<h6>

Аватара пользователя
JokerR
Не в сети
Новичок
Новичок
Сообщения: 86
Зарегистрирован: Чт сен 15, 2005 1:03
Откуда: Шахты
Контактная информация:

Сообщение JokerR »

andrNZ,
начни отсюда: http://www.parallel.ru/

Ответить