Шаг 329 - Собственные заливки площадей

У нас есть возможность делать заливки фигур на основе растрового изображения. Давайте создадим проект TestBrush, как SDI приложение. Добавим в проект растровую картинку.

329_1.gif (2962 b)

И напишем код в функции OnDraw():

/////////////////////////////
// CTestBrushView drawing

void CTestBrushView::OnDraw(CDC* pDC)
{
	CTestBrushDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);

	CBrush* pTempBrush = NULL;
	CBrush OrigBrush;
	CBitmap bm;
	bm.LoadBitmap(IDB_BITMAP1);
	CBrush brush1(&bm);
	pTempBrush=pDC->SelectObject(&brush1);
	OrigBrush.FromHandle((HBRUSH)pTempBrush);
	pDC->Rectangle(CRect(50,50,150,150));
	pDC->SelectObject(&OrigBrush);
}

Основа кода это создание объекта CBitmap, из которого формируется CBrush, которым мы и выполняем функцию рисования прямоугольника.

Смотрим результат:

329_2.gif (3095 b)

Растр лучше делать 8x8 пикселов, так как именно 8 пикселей и берется для заливки.


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 21.04.2001