Стили штриховки |
Описание |
HS_HORIZONTAL |
Горизонтальная штриховка |
HS_VERTICAL |
Вертикальная штриховка |
HS_BDIAGONAL |
Диагональная штриховка слева направо сверху вниз под 45 град. |
HS_FDIAGONAL |
Диагональная штриховка слева направо снизу вверх под 45 град. |
HS_CROSS |
Пересекающаяся штриховка из горизонт. и вертикальных линий |
HS_DIACROSS |
Пересекающаяся штриховка из диагональных линий |
Пример.
CBrushbrush2(HS_CROSS, RGB(255,0,0));
Стандартные кисти сплошной заливки также можно создавать с помощью метода SelectStockObject( стандарт). Естественно, что устанавливаемая кисть не имеет идентификатора. Такая кисть называется текущей.
Стандарт сплошной заливки |
Описание кисти |
GRAY_BRUSH |
Серая |
BLACK_BRUSH |
Чёрная |
HOLLOW_BRUSH |
Пустая |
LTGRAY_BRUSH |
Слегка серая |
WHITE_BRUSH |
Белая |
NULL_BRUSH |
Нулевая |
DKGRAY_BRUSH |
Тёмносерая |
Пример.
pDC->SelectStockObject(GRAY_BRUSH);// Установлена кисть, которая будет заливать фигуры серым цветом.
Здесь pDC, как и раньше,указатель на объект CDC.
2.4.2.1 Использование кисти
Подобно использованию пера, при выборе новой кисти рекомендуется использовать одну из функций с префиксом Select, которые возвращают адрес старой кисти. Это позволит, при необходимости, восстановить её.
Пример.
CBrush*pOldBrush=(CBrush*)pDC->SelectStockObject(WHITE_BRUSH);//
//Выбрали белую кисть и в указатель pOldBrush занесли адрес старой кисти.
// далее что-то рисуется………………………………….
pDC->SelectObject(pOldBrush);//Восстановление старой кисти по её адресу // в указателе pOldBrush.
2.4.2.2 Закрашивание произвольных замкнутых областей
Прямоугольники и эллипсы закрашиваются кистью автоматически. Однако, замкнутые участки могут также образоваться и в результате рисования серии линий. При необходимости их закрасить используется метод FloodFill(). Её прототип имеет вид
BOOL FloodFill( int x, int y, COLORREF crColor ); |
Здесь x и y - координаты точки внутри закрашиваемой области;
COLORREF crColor – цвет границы, которым нарисована эта область.
Пример.
pDC->FloodFill(70,70,RGB(0,0,255));// Закрасить ранее установленной кистью замкнутую область.
2.4.3 Объект «Растровое изображение»
Растровое изображение – объект, заключающий в себе прямоугольную область из пикселей. В этой области можно задавать любое изображение, а также считывать и записывать её в файл и производить с ней другие действия.
2.4.4 Объект «Палитра»
В Windows различают физические и логические палитры. Логическая палитра предназначена для работы самого приложения. Для создания палитры используются методы CreatePalette() и CreateHalftonePalette().
Сформированная палитра может быть изменена с помощью метода SetPaletteEntries().
Есть ещё один способ управления цветом с помощью макроса RGB(красный, зелёный, голубой). О нём уже сказано выше в 2.4.1.
3 Отображение графики
Выбрав перо и кисть, можно приступить к рисованию линий и различных фигур. Для этого используются функции класса CDC, на которые указывает указатель pDC, передаваемый в качестве параметра при вызове OnDraw( ) .
Выше уже были приведены примеры, когда вызывались функции MoveTo() и LineTo() . Рассмотрим некоторые функции.
1) MoveTo() Перемещение курсора .
Класс CDC переопределяет эту функцию:
CPoint MoveTo ( int x, int y );//Перейти в позицию x, y
CPoint MoveTo ( POINT aPoint);//Перейти в позицию, определённую aPoint
Первая версия принимает координаты x, y как отдельные аргументы. Вторая принимает один аргумент типа POINT, который представляет собой структуру
typedef struct tagPOINT
{
LONG x;
LONG y;
} POINT;
2) LineTo() Рисование линии.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.