C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 154 - Много элипсов шаг 3 / MFC шаг за шагом / Visual C++

Шаг 154 - Много элипсов шаг 3

Итак, давайте договоримся. По нажатию на левую кнопку новый эллипс, по нажатию на другую изменение размеров. Начнем с левой.

void CTestEllipseView::OnLButtonDown(UINT nFlags, CPoint point) 
{
	CTestEllipseDoc* pDoc = GetDocument();
	CMyDialog cm;

	cm.m_X1 = 0;
	cm.m_Y1 = 0;
	cm.m_X2 = 100;
	cm.m_Y2 = 100;

        if (cm.DoModal()==IDOK)
	{
		pDoc->cEllipce.Add(CRect(cm.m_X1,cm.m_Y1,cm.m_X2,cm.m_Y2));
		pDoc->UpdateAllViews(NULL); 
	}

	CView::OnLButtonDown(nFlags, point);
}

Класс этого диалога знаком из прошлых шагов. Только теперь при выборе кнопки OK производится добавление новых данных в контейнер и обновляются все виды.

По нажатию на правую кнопку необходимо провести редактирование. Вот код.

void CTestEllipseView::OnRButtonDown(UINT nFlags, CPoint point) 
{
    CTestEllipseDoc* pDoc = GetDocument();
 
	int x=0;
        x=pDoc->cEllipce.FindEllipce(point);
if (x!=-1)
 {
	CMyDialog cm;
	cm.m_X1 = pDoc->cEllipce.Get(x).left;
	cm.m_Y1 = pDoc->cEllipce.Get(x).top;
	cm.m_X2 = pDoc->cEllipce.Get(x).right;
	cm.m_Y2 = pDoc->cEllipce.Get(x).bottom;
	
	if (cm.DoModal()==IDOK)
	{
		pDoc->cEllipce.SetData(x,CRect(cm.m_X1,cm.m_Y1,cm.m_X2,cm.m_Y2));
		pDoc->UpdateAllViews(NULL); 
	}
   }
	CView::OnRButtonDown(nFlags, point);
}

Берем точку и ищем в элипсе. Если найдена, то передаем эти параметры в окно диалога и при выходе из диалога меняем данные в контейнере. Обновляем виды.

При тестировании не перепутайте клавиши !!! Очень Вас прошу. В проекте, который Вы можете загрузить лежат несколько моих файлов:

a.aaa
a1.aaa

Можете из загрузить. Итак, правая редактирование, левая новый элипс. И пожалуйста попадайте внутрь при редактировании контура эллипса ;-)))


Загрузить проект | | |
Автор Каев Артем.
[AD]