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


Автор: Найли 19.4.2005, 18:20
Подскажиет плиз план действий. Есть такое задание:
Создать приложение TestGraphSDI с однооконным интерфейсом, позволяющее при движении "мыши" с нажатой левой клавишей рисовать в окне приложения геометрическими фигурами (прямоугольник или окружность). Параметры выводимой фигуры задаются при помощи меню, как главного, так и появляющегося при нажатии правой кнопки мыши.
Абсолютно не предсатвляю себе как это сделать =(((
smile

Автор: Coocky 19.4.2005, 21:28
Найли
задание не сложное.Задай пожайлуста КОНКРЕТНЫЕ вопросы по поводу того,с чем у тебя проблемы.Здесь же все и сделаем smile

Автор: Step 20.4.2005, 13:21
по нажатию клавиши фиксируешь одни координаты
по отпусканию вторые координаты
и вписываешь в прямоугольник ту фигуру которую хочешь


например, для окружности можно первые координаты взять как центр, а через первые и вторые найти радиус

по отпусканию вычисляешь все необходимое и отрисовываешь

Автор: Tneiro 20.4.2005, 14:26
привет, надо сделать два обработчика событий
в .н файле
CPoint oldpoint;

на нажатия кнопки мыши
void CtestView::OnLButtonDown(UINT nFlags, CPoint point)
{
oldpoint=point;
CView::OnLButtonDown(nFlags, point);
}

на отпускани кнопки мыши
void CtestView::OnLButtonUp(UINT nFlags, CPoint point)
{
CClientDC ClientDC(this);
CBrush brush(HS_CROSS,RGB(255,0,0));
CBrush *oldbrush;
ClientDC.SelectObject(brush);
ClientDC.SetBkColor(RGB(192,0,192));
ClientDC.Rectangle(oldpoint.x,oldpoint.y,point.x,point.y);
ClientDC.SelectObject(&oldbrush);
CView::OnLButtonUp(nFlags, point);
}

Автор: Step 20.4.2005, 14:31
Tneiro, людей надо заставлять думать, а не работать за них smile так будет больше пользы smile

Автор: Tneiro 20.4.2005, 14:54
согласен, но я рассказал только про левую кнопку мыши, а про правую пусть сам smile

Автор: Coocky 21.4.2005, 10:57
Найли
если вас интересует эта тема,прошу еще раз-задайте вопрос-что вам не поняьно.Возможно начнем с нуля.Вот люди вам уже и код кидают.Только в концепции SDI он не подойдет.
Tneiro
Будь внимательным.Проект SDI-документ /представление.Не путай человека.Подход будет заключаться в другом.

Автор: Step 21.4.2005, 12:39
Цитата(Coocky @ 21.4.2005, 10:57)
Найли
если вас интересует эта тема,прошу еще раз-задайте вопрос-что вам не поняьно.Возможно начнем с нуля.Вот люди вам уже и код кидают.Только в концепции SDI он не подойдет.
Tneiro
Будь внимательным.Проект SDI-документ /представление.Не путай человека.Подход будет заключаться в другом.


перевожу


после некоторой модификации кода после отрисовки, будет совсем не плохо в документ сохранить параметры и тип фигуры что бы после переразвертывания все отрисовывалось

вернее сохранить, а потом дать команду на перерисовку и он драв зазязать на отрисовку фигур по типу в цикле что бы все фигуры отрисовались

Coocky, я тебя правильно понял.....

Автор: Coocky 21.4.2005, 20:12
Step
Конечно smile

Автор: Tneiro 25.4.2005, 13:25
Coocky расскажите пожалуста в чем будет заключатся подход ? и в чем неправильность моего пожхода относительно SDI концепции документ/представления ?
Coocky прочитай ещё раз про SDI !
Добавлено @ 13:30
www.hungryminds.com смотри пример BarsDemo.

Автор: shved 26.4.2005, 08:21
МОгу прислать исходники такой программы мы вроде такое делали в универе

Автор: Gazon 26.4.2005, 20:18
Вот.

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