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++ — ©...
  Update World C++: Сборник GPL QT исходников
  Весь сайт целиком можно загрузить по ссылкам из раздела Скачать

 349 - Пути(path) CDC / MFC шаг за шагом / Visual C++

Шаг 349 - Пути(path) CDC

Идея путей в том путь это набор фигур или форм, которые могут быть объединены для рисования других фигур или для создания областей обрезки. Создается путь путем вызова функции:

CDC::BeginPath
BOOL BeginPath( );

Дальше следуют команды, а заканчивается путь вызовом.

CDC::EndPath
BOOL EndPath( );

Давайте создадим приложение MFC AppWizard с именем TTestPath как SDI. Естественно, что нас будет интересовать функция OnDraw для работы с CDC.

////////////////////////
// CTestPathView drawing

void CTestPathView::OnDraw(CDC* pDC)
{
	CTestPathDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	// TODO: add draw code for native data here
}

Мы изменим ее для того, что бы с помощью пути задать область обрезки.

///////////////////////////
// CTestPathView drawing

void CTestPathView::OnDraw(CDC* pDC)
{
	CTestPathDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	// TODO: add draw code for native data here
	pDC->BeginPath();			 
	pDC->MoveTo(CPoint(10,10));
	pDC->LineTo(CPoint(100,10));
	pDC->LineTo(CPoint(100,100));
	pDC->LineTo(CPoint(10,100));
	pDC->LineTo(CPoint(10,10)); 
	pDC->EndPath();
	pDC->SelectClipPath(RGN_COPY);
	CPen penRed(PS_SOLID,1,RGB(255,0,0));
	CPen *oldPen;
	oldPen=pDC->SelectObject(&penRed);
	pDC->Rectangle(CRect(CPoint(10,10),CPoint(100,100))); 
	for (int x=0;x<100;x++)
	{
		pDC->MoveTo(10,10);
		pDC->LineTo(200,x*20);
	}
	pDC->SelectObject(oldPen); 
}

Здесь мы создаем область обрезки в виде прямоугольника, а потом обрисовываем эту область и начинаем заполнять линиями. Результат будет вот такой.

349_1.gif (3443 b)


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