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);Можно собирать и запускать. А вот и результат.