1. Функция изменения положения текущего указателя
CPoint CDC :: MoveTo (int x, int y);
CPoint CDC :: MoveTo (POINT point);
где (x, y) или point - координаты точки, на которую изменяется положение тек-ного указателя. Использование очень простое:
memDC.MoveTo (100,100); // Перемещение текущего указателя в точку (100, 100)
В качестве параметра, возвращаемого функцией, выступает предварительное положен ния текущего указателя.
2. Функция отображения линий:
BOOL CDC :: LineTo (int x, int y);
BOOL CDC :: LineTo (POINT point);
Функция LineTo () обеспечивает проведение линии с точки положения тек-ного указателя в точку (x, y) или point. Чтобы провести красную плотную линию толщиной 3 пикселя, например с точки (10, 10) в точку (200,30), можно реализовать обработчик OnPaintLine () с таким кодом:
Использование LineTo ()
void CMainWin :: OnPaintLine ()
[CPen redPen (PS_SOLID, 3, RGB (255, 0,0)); // Определяем красное перо
memDC.SelectObject (& redPen); // Выбираем перо
memDC.MoveTo (100, 100); // Перемещаем текущий указатель
memDC.LineTo (250, 300); // Отражаем линию
InvalidateRect (NULL); // Обновляем все окно
]
3. Построение прямоугольников
BOOL CDC :: Rectangle (int x1, int y1, int x2, int y2);
BOOL CDC :: Rectangle (LPCRECT lpRect);
В этих функциях верхний левый угол прямоугольника описывается координатами (x1, y1), нижний правый угол - координатами (x2, y2). Второй вариант функции использует указатель на объект прямоугольника, который можно задать, например, следующим образом:
СRect a (100,100,300,300);
memDC.Rectangle (& a);
Еще один вариант прямоугольника задает функция RoundRect (). Отличием этой функции является закругления углов. Ширина и высота эллипса закругления задается дополнительно или непосредственно координатами, или точкой, с которой эти координаты получаются.
BOOL CDC :: RoundRect (int x1, int y1, int x2, int y2, int x3, int y3);
BOOL CDC :: RoundRect (LPCRECT lpRect, POINT point);
Построение прямоугольников
memDC.SelectObject (& redPen);
memDC.SelectObject (& yellowBrush);
CRect d (50,220,170,300)
memDC.Rectangle (& d); // Стандартный прямоугольник
CPoint p3 (50,50);
CRect e (200,220,270,300);
memDC.RoundRect (& e, p3); // Прямоугольник с закругленными углами
4. Полилиния, Блейз-сплайн.