Шаг 96 - Кисть

	29 января на Северо-Востоке России показалось Солнце.
        Поляной ночи конец !!!!!!

Для рисования графики GDI предлагает два инструмента кисти и перья. Они вроде похожи, а и вроде нет. Главное отличие в том, что перо позволяет рисовать линии заданной толщины, а кисть заливает замкнутую фигуру. По русски закрашивает. Кисти можно делать любые, сплошные, трафаретные и даже из растровых файлов !!!. Ну к делу ?

Создавайте приложение Win 32 MFC App Wizard, скажите SDI и всё, как говорят Finish. И хотя тип окон значения не имеет, пусть будет просто SDI. Нам в CTestBrushView, там наш любимый OnDraw, в котором мы и будет творить.

Итак, чего я хочу ? Сделать закрашенный прямоугольник. Вот чего я хочу !!!!. Начинаем.

Надо сделать класс пера для контура. Параметры описывать не буду, не о том речь.

CPen pen(PS_SOLID, 5, RGB(0,0,255));
Выберем перо и сохраним старое
CPen* oldPen = pDC->SelectObject(&pen);
Теперь класс кисти.
CBrush brush(HS_BDIAGONAL, RGB(255,0,0));
У него несколько конструкторов в зависимости от того, чего Вам надо. А чего Вам надо ? Мне штриховку лично.
CBrush( );				// просто так ;-)
CBrush( COLORREF crColor );		// сплошным цветом
throw( CResourceException );
CBrush( int nIndex, COLORREF crColor );  // со штриховкой 
throw( CResourceException );
CBrush( CBitmap* pBitmap );		 // растровой картинкой 
throw( CResourceException );
Как видите я выбрал третий вариант со штриховкой. Все варианты шриховок смотрите в подробностях.

Выбираем для рисования кисть.

CBrush* oldBrush =pDC->SelectObject(&brush); 
Пора рисовать
pDC->Rectangle(10,10,200,200);
Теперь надо все вернуть на место. Меня мама в детстве учила: "Взял, потом положи на место". Так и не научила, теперь жена учит :-)))
pDC->SelectObject(oldPen);
pDC->SelectObject(oldBrush); 
Можно собирать и запускать. А вот и результат.

step96.gif (2343 b)


Загрузить проект | Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем.