Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > рисование графика


Автор: Diiana 7.8.2009, 15:40
Добрый день! Не подскажите как реализовать следующую идею,какой компонент взять,с графикой не очень дружу,а приходится,с базы данных по sql запросу получаю данные (в этом проблемы нет) и по этим данным нужно нарисовать график с ползунком. smile Буду рада любой помощи

Автор: Earnest 7.8.2009, 17:01
В MFC нет готового компонента. Сделай класс-контрол на основе Static и рисуй там свой график, так что с графикой придется подружиться. Хотя все что тебе нужно совсем несложно. Посмотри класс CDC - там все рисование.
И не понятно, что значит "график с ползунком".

Автор: Diiana 11.8.2009, 10:56
Earnest, спасибо вам за ответ. вот начала рисовать в Picture Control
Код

CStatic pic;
CDC* pDC = pic.GetDC();
pDC->Ellipse(x,y,x+10,y+10);
pic.ReleaseDC(pDC);

только вот рисует с вехнего левого угла и получается график с верху вниз.а как сделать чтобы двигался с левого нижнего угла и слева на право?Вот сколько заморочек чтобы нарисовать график,из-за этого и не люблю графику smile 

Автор: Albor 11.8.2009, 11:05
Используй MoveTo() для перемещения в нужную точку.

Автор: Earnest 11.8.2009, 15:13
Во-первых, рисовать лучше в обработчике OnPaint, и тогда использовать контекст CPaintDC.

Во-вторых, система координат по-умолчанию MM_TEXT, т.е. координата у отсчитывается как у растров - с левого верхнего угла вниз. Но есть и другие системы координат, см. CDC::SetMapMode. Для графика лучше всего подойдут MM_ISOTROPIC или MM_ANISOTROPIC: можно сразу установить произвольный масштаб ( в смысле отображения единиц графика в пикселы экрана). Есть ограничение: только целые координаты, что не всегда удобно. Если хочешь работать с double координатами, придется написать свое преобразование и пересчитывать самой каждую точку. Тогда проще оставить MM_TEXT. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)