|
http://tikitak.narod.ru ---- Главная страница сайта
Шаг 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);
Можно собирать и запускать. А вот и результат.
Загрузить проект | Предыдущий Шаг | Следующий Шаг | Оглавление By Artem.
Используются технологии uCoz
|