lpRect - Указатель на структуруRECT или объектCRect, который определяет логические координаты прямоугольника, чтобы рисовать.
CDC:: Ellipse
Этот метод рисует эллипс.
BOOL Ellipse (
int x1 ,
int y1 ,
int x2 ,
int y2 );
BOOL Ellipse (
LPCRECT lpRect );
x1 - Логическая x-координата левого верхнего угла ограничительного прямоугольника эллипса.
y1 - Логическая y-координата левого верхнего угла ограничительного прямоугольника эллипса.
x2 - Логическая x-координата нижнего правого угла ограничительного прямоугольника эллипса.
y2 - Логическая y-координата нижнего правого угла ограничительного прямоугольника эллипса.
lpRect - Ограничительный прямоугольник эллипса. Вы можете также передать объектCRect для этого параметра.
Возвращаемое значение -Отлично от нуля, если функция выполнена успешно; иначе - ноль.
Центр эллипса - центр ограничительного прямоугольника, указанного x1, y1, x2, и y2, или lpRect. Эллипс рисуется текущим пером, и его внутренняя область заполнена текущей кистью.
Высота рисунка - y2 - y1, и ширина рисунка - x2 - x1.
Если или ширина или высота ограничительного прямоугольника являются нулевыми, никакой эллипс не рисуется.
CDC:: Polygon
Этот метод рисует многоугольник, состоящий из двух или больше точек, связанных линиями. Система закрывает многоугольник автоматически, рисуя линию от последней вершины до первой.
BOOL Polygon (
LPPOINT lpPoints ,
int nCount );
lpPoints - Указатель на массив точек, которые определяют вершины многоугольника. Каждая точка в массиве - структураPOINT или объектCPoint.
nCount - Количество вершины в массиве.
Возвращаемое значение -Отлично от нуля, если функция выполнена успешно; иначе - ноль.
void CMyView:: OnDraw (CDC* pDC)
{
// Выделить клиентскую область.
CRect rect;
GetClientRect (rect);
// Рисовать сплошным синим пером.
CPen penBlue (PS_SOLID, 5, RGB (0, 0, 255));
CPen* pOldPen = pDC->SelectObject(&penBlue);
// Сплошная красная кисть.
CBrush brushRed (RGB (255, 0, 0));
CBrush* pOldBrush = pDC->SelectObject(&brushRed);
// Найти середины вершины, права, левого, и основания
// клиентской области. Они - вершина многоугольника.
CPoint запятые [4];
pts [0] .x = rect.left + rect. Width ()/2;
pts [0] .y = rect.top;
pts [1] .x = rect.right;
pts [1] .y = rect.top + rect. Height ()/2;
pts [2] .x = pts [0] .x;
pts [2] .y = rect.bottom;
pts [3] .x = rect.left;
pts [3] .y = pts [1] .y;
// Выбрать старые объекты.
pDC-> SelectObject (pOldPen);
pDC-> SelectObject (pOldBrush);
}
CDC:: PolyPolygon
Этот метод создает два или больше многоугольника. Многоугольники могут быть бессвязными или перекрывать друг друга.
BOOL PolyPolygon (
LPPOINT lpPoints ,
LPINT lpPolyCounts ,
int nCount );
lpPoints - Указатель на массив структурPOINT или объектовCPoint, которые определяют вершину многоугольников.
lpPolyCounts - Указатель на массив целых чисел, каждое из которых определяет количество точек в одном из многоугольников массива lpPoints.
nCount - Количество массивов в массиве lpPolyCounts. Это значение должно быть не менее двух.
Возвращаемое значение -Отлично от нуля, если функция выполнена успешно; иначе - ноль.