CDC::Chord
Рисует аккорд (закрытая диаграмма прыгнутая пересечением эллипса и участка линии).
BOOL Chord(
int x1,
int y1,
int x2,
int y2,
int x3,
int y3,
int x4,
int y4
);
BOOL Chord(
LPCRECT lpRect,
POINT ptStart,
POINT ptEnd
);
Параметры
x1
Указывает координату по оси x левой стороны прямоугольника верхн- угла ограничивающего аккорда (в логических единицах).y1
Указывает координату по оси y верхнего левого угла ограничивающего прямоугольника верхн- аккорда (в логических единицах).x2
Определяет пару координат (x низк- правого угла ограничивающего прямоугольника аккорда (в логических единицах).y2
Указывает координату по оси y правого верхнего угла ограничивающего прямоугольника низк- аккорда (в логических единицах).x3
Указывает координату х точки, который определяет начальную точку аккорда (в логических единицах).y3
Указывает координату y точки, который определяет начальную точку аккорда (в логических единицах).x4
Указывает координату х точки, задающий конечную точку аккорда (в логических единицах).y4
Указывает координату y точки, задающий конечную точку аккорда (в логических единицах).lpRect
Указывает ограничивающий прямоугольник (в логических единицах). Можно передать или LPRECT или объект CRect для этого параметра.ptStart
Определяет координаты x и y точки, который определяет начальную точку аккорда (в логических единицах). Данная точка не должен находиться на аккорде. Можно передавать или структуру POINT или объект CPoint для этого параметра.ptEnd
Определяет координаты x и y точки, который определяет конечную точку аккорда (в логических единицах). Данная точка не должен находиться на аккорде. Можно передавать или структуру ТОЧКА или объект CPoint для этого параметра.
Возвращаемое значение
Ненулевой если функция успешно; в противном случае – значение 0.
Заметки
(x1, y1) и (x2, y2) параметры укажите верхн- слева и низк- правое углов прямоугольника, соответственно, ограничивающий эллипс, частью аккорда. (X3, y3) и (x4, y4) параметры укажите конечные точки линии, которая пересекает эллипс. Аккорд рисование с помощью выбранной пера и заполняется с помощью выбранной кисти.
Диаграмма выписанная функцией Chord распространяется до, но не включает координаты правах и снизу. Это означает, что высота диаграммы y2 – y1 и ширину элемента диаграммы x2 – x1.
Пример
void CDCView::DrawChord(CDC* pDC)
{
// Fill the client area with a circle. The circle is
// blue and filled with blue, but has a chord cut out
// of it from 3 o'clock to 6 o'clock. That chord is
// red and filled with a red diagonal hatch.
// Get the client area.
CRect rectClient;
GetClientRect(rectClient);
// Make a couple of pens and similar brushes.
CPen penBlue, penRed;
CBrush brushBlue, brushRed;
CBrush* pOldBrush;
CPen* pOldPen;
brushBlue.CreateSolidBrush(RGB(0, 0, 255));
brushRed.CreateHatchBrush(HS_FDIAGONAL, RGB(255, 0, 0));
penBlue.CreatePen(PS_SOLID | PS_COSMETIC, 1, RGB(0, 0, 255));
penRed.CreatePen(PS_SOLID | PS_COSMETIC, 1, RGB(255, 0, 0));
// Draw from 3 o'clock to 6 o'clock, counterclockwise,
// in a blue pen with a solid blue fill.
pOldPen = pDC->SelectObject(&penBlue);
pOldBrush = pDC->SelectObject(&brushBlue);
pDC->Chord(rectClient,
CPoint(rectClient.right, rectClient.CenterPoint().y),
CPoint(rectClient.CenterPoint().x, rectClient.right));
// Draw the remaining quarter chord from 6 o'clock
// to 3 o'clock, counterclockwise, in a red pen
// with the hatched brush.
pDC->SelectObject(&penRed);
pDC->SelectObject(&brushRed);
// Keep the same parameters, but reverse start and
// end points.
pDC->Chord(rectClient,
CPoint(rectClient.CenterPoint().x, rectClient.right),
CPoint(rectClient.right, rectClient.CenterPoint().y));
// Restore the previous pen.
pDC->SelectObject(pOldPen);
}
Требования
Header: afxwin.h