У нас есть возможность делать заливки фигур на основе растрового изображения. Давайте создадим проект TestBrush, как SDI приложение. Добавим в проект растровую картинку.
И напишем код в функции 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, которым мы и выполняем функцию рисования прямоугольника.
Смотрим результат:
Растр лучше делать 8x8 пикселов, так как именно 8 пикселей и берется для заливки.