Контекст устройства.
Контекст устройства - это структура данных, в которой содержатся различные графические параметры. По умолчанию они принимают стандартные значения, чтобы сразу после создания контекста его можно было сразу использовать. Например, после создания нами контекста dc мы получили:
белый цвет фона (Brush - кисть);
черный цвет карандаша (Pen - карандаш);
стандартный тип линии (PS_SOLID - непрерывная);
Однако придерживаться стандартных параметров не обязательно. С помощью функций-членов класса TDC мы можем определить свой контекст.
Объекты GDI.
Базовые методы:
MoveTo()
1. MoveTo(10, 10); - перемещает текущую позицию в точку с координатами A(10,10).
2. TPoint p1(10, 10);
MoveTo(p1); - перемещает текущую позицию в точку с координатами A(10,10) с использованием класса TPoint() - точки.
LineTo()
1. LineTo(10, 10); - рисует линию от текущей позиции до точки с координатами A(10,10).
2. TPoint p1(10, 10);
LineTo(p1); - рисует линию от текущей позиции до точки с координатами A(10,10) с использованием класса TPoint() - точки.
Прямоугольники:
Rectangle()
1. dc.Rectangle(10, 10, 100, 100); - рисует прямоугольник между точками с координатами A(10,10) и B(100,100).
2. TPoint p1(10, 10), p2(100, 100);
dc.Rectangle(p1, p2); - рисует прямоугольник между точками с координатами A(10, 10) и B(100, 100) с использованием класса TPoint() - точки.
3. TPoint p1(10, 10);
TSize sz(90, 90);
dc.Rectangle(p1, sz); - рисует прямоугольник между точками с координатами A(10, 10) и B(100, 100) с использованием класса TPoint() - точки и TSize - размера.
4. TRect rect(10, 10, 100, 100);
dc.Rectangle(rect); - рисует прямоугольник между точками с координатами A(10, 10) и B(100, 100) с использованием класса TRect() - прямоугольник.
RoundRect()
1. TPoint p1(10, 10), pRadius(100, 100);
TSize sz(200, 200);
dc.RoundRect(p1, sz, pRadius); - рисует прямоугольник с закругленными углами, лежащий между точками с координатами A(10, 10) и B(210, 210) с использованием класса TPoint() - точки и TSize - размера.
FillRect()
1. TBrush brush(TColor::LtRed);
TRect rect(10, 10, 100, 100);
dc.FillRect(rect, brush); - рисует закрашенный красным цветом прямоугольник между точками с координатами A(10, 10) и B(100, 100) с использованием класса TRect() - прямоугольник и TBrush - кисть.
InvertRect()
1. dc.InvertRect(10, 10, 100, 100); - инвертирует цвета в прямоугольной области между точками с координатами A(10, 10) и B(100, 100).
2. TRect rect(10, 10, 100, 100);
dc.InvertRect(rect); - инвертирует цвета в прямоугольной области между точками с координатами A(10, 10) и B(100, 100) с использованием класса TRect() - прямоугольник.
Окружности:
Ellipse()
1. dc.Ellipse(10, 10, 100, 100); - рисует эллипс, вписанный в прямоугольник, лежащий между точками с координатами A(10, 10) и B(100, 100).
2. TPoint p1(10, 10), p2(100, 100);
dc.Ellipse(p1, p2); - рисует эллипс, вписанный в прямоугольник, лежащий между точками с координатами A(10, 10) и B(100, 100) с использованием класса TPoint() - точки.
4. TRect rect(10, 10, 100, 100);
dc.Ellipse(rect); - рисует эллипс, вписанный в прямоугольник, лежащий между точками с координатами A(10, 10) и B(100, 100) с использованием класса TRect() - прямоугольник.
Arc() - дуга.
1. TRect rect(100, 30, 300, 330);
TPoint p1(350, 45), p2(50, 45);
dc.Arc(rect, p1, p2); - рисует дугу, расположенную между точками C(350, 45) и D(50, 45) и вписанную в прямоугольник, лежащий между точками с координатами A(100, 30) и B(300, 330). Угол изменяется при движении по эллипсу против часовой стрелкию
Методы Chord() (сегмент) и Pie() (сектор) принимают такие же аргументы, имеющие тот же смысл, что и в случае метода Arc(). Сегмент получается из дуги соединением конечных точек, а сектор - соединением конечных точек с центром эллипса. Вывод текста.
1. dc.TextOut(10, 10, "Текст"); - выводит текст в точку с координатами A(10, 10).
2. TPoint p1(10, 10);
dc.TextOut(p1, "Текст"); - выводит текст в точку с координатами A(10, 10) с использованием класса TPoint() - точки.
Другие объекты GDI.
Перья - класс TPen().
Класс TPen имеет шестьразличных конструкторов, принимающих различный набор аргументовю Самая употребительная форма:
TPen(TColor color, int width = 1, int style = PS_SOLID);
Первый параметр - экземпляр объекта TColor, который определяет конкретный цвет. Второй аргумент представляет ширину, а последний стиль.
Ниже перечислены возможные стили:
Перья используются для того, чтобы установить цвет и стиль линий или границ фигур.
Кисти - класс TBrush().
Создание простой кисти:
TBrush(TColor color)
Создание штриховой кисти:
TBrush(TColor color, int style)
В первом случае кисть просто заполняет фигуры указанным цветом.
Во втором - фон заполнится конкретным шаблоном штриховки соответствующего цвета.
Ниже перечислены возможные шаблоны штриховок:
Кисти используются для указания цвета и стиля фонов или заливок.