Контекст устройства. Работа с текстом. Диалоговое окно выбора цвета. Настройка режима отображения. Точечный рисунок. Класс CBitmap, страница 6

Перемещение карандаша. Функция MoveTo

Назначение: перемещает карандаш в указанную позицию.

Синтаксис:

CPoint MoveTo ( int x , int y ) ;

CPoint MoveTo ( POINT point ) ;

Рисование отрезка. Функция LineTo

Назначение: рисует отрезок от текущего положения карандаша до указанной точки с одновременным изменением текущего положения карандаша.

Синтаксис:

BOOL LineTo ( int x , int y ) ;

BOOL LineTo ( POINT point ) ;

Возвращаемое значение: ненулевое, если функция успешно выполнена, и ноль в противном случае.

Обе функции перегружены и допускают задание координат, как в виде пары чисел, так и с помощью структуры POINT.

Рисование точки. Функция SetPixel

Назначение: рисует точку размером один пиксель (Picsel – PICtureS ELement). Размер точки зависит от разрешения экрана.

Синтаксис:

COLORREF SetPixel ( int x , int y, COLORREF crColor ) ;

COLORREF SetPixel ( POINT point , COLORREF crColor ) ;

Возвращаемое значение: цвет нарисованной точки.

Параметры:

x , y                      определяет логические координаты точки.

point                    объект типа POINT, который определяет логические координаты точки.

crColor                цвет точки.

Получение цвета точки. Функция SetPixel

Назначение: возвращает цвет точки с определёнными координатами.

Синтаксис:

COLORREF GetPixel ( int x , int y ) const ;

COLORREF GetPixel ( POINT point ) const ;

С помощью функции GetPixel  можно, например, определить цвет диалогового окна и передать его цвету фона при рисовании текста. В этом случае ваша программа не будет зависеть от настроек Windows.

Рисование графических примитивов

Класс CDC содержит широкий набор функций для рисования графических примитивов. Ниже приведены прототипы некоторых из этих функций.

Рисование прямоугольника. Функция Rectangle

Назначение: рисует контур прямоугольника текущим карандашом и заполняет его текущей кистью. Текущее положение карандаша не изменяется.

Синтаксис:

BOOL Rectangle ( int x1 , int y1 , int x2 , int y2 ) ;

BOOL Rectangle ( LPCRECT lpRect  ) ;

Возвращаемое значение: ненулевое, если функция успешно выполнена, и ноль в противном случае.

Параметры:

x1 , y1 , x2 , y2     координаты двух противоположных вершин прямоугольника.

lpRect                  указатель на структуру RECT, которая определяет размеры и положение прямоугольника. Допускается также использование в качестве параметра объектов типа CRect.

Рисование округлённого прямоугольника. Функция RoundRect

Назначение: рисует эллиптическую дугу между двумя заданными радиус-векторами. Радиус-вектор начинается в центре рабочего прямоугольника и заканчивается в указанной точке, которая не обязана лежать на дуге. Дуга рисуется в направлении против часовой стрелки. Так как дуга не является замкнутой линией, то заполнение текущей кистью не выполняется.

Синтаксис:

BOOL RoundRect( int x1 , int y1 , int x2 , int y2 , int x3 , int y3 ) ;

BOOL RoundRect ( LPCRECT lpRect , POINT point ) ;

Параметры:

x1 , y1 , x2 , y2     координаты двух противоположных вершин прямоугольника.

x3 , y3                  размер эллипса, используемого для округления.

lpRect                  указатель на структуру RECT, которая определяет размеры и положение прямоугольника.

point                    размер эллипса, используемого для округления.

Рисование эллипса. Функция Ellipse

Назначение: рисует эллипс, вписанный в указанный прямоугольник, текущим карандашом и заполняет его текущей кистью. Текущее положение карандаша не изменяется.

Синтаксис:

BOOL Ellipse ( int x1 , int y1 , int x2 , int y2 ) ;

BOOL Ellipse ( LPCRECT lpRect ) ;

Рисование эллиптической дуги. Функция Arc

Назначение: рисует эллиптическую дугу между двумя заданными радиус-векторами. Радиус-вектор начинается в центре рабочего прямоугольника и заканчивается в указанной точке, которая не обязана лежать на дуге. Дуга рисуется в направлении против часовой стрелки. Так как дуга не является замкнутой линией, то заполнение текущей кистью не выполняется.

Синтаксис:

BOOL Arc ( int x1 , int y1 , int x2 , int y2 , int x3 , int y3 , int x4 , int y4 ) ;

BOOL Arc ( LPCRECT lpRect , POINT ptStart , POINT ptEnd ) ;

Параметры: