CDC::Pie
Dibuja una cuña empanada- formada dibujando un arco elíptico cuyo central y dos extremos están combinados por las líneas.
BOOL Pie(
int x1,
int y1,
int x2,
int y2,
int x3,
int y3,
int x4,
int y4
);
BOOL Pie(
LPCRECT lpRect,
POINT ptStart,
POINT ptEnd
);
Parámetros
x1
Especifica la coordenada x de la esquina superior izquierda del rectángulo delimitador (en unidades lógicas).y1
Especifica la coordenada y de la esquina superior izquierda del rectángulo delimitador (en unidades lógicas).x2
Especifica la coordenada x de la esquina inferior derecha del rectángulo delimitador (en unidades lógicas).y2
Especifica la coordenada y de la esquina inferior derecha del rectángulo delimitador (en unidades lógicas).x3
Especifica la x- coordenada el punto inicial del arco (en unidades lógicas). este punto no tiene que mentir exactamente en el arco.y3
Especifica la y- coordenada el punto inicial del arco (en unidades lógicas). este punto no tiene que mentir exactamente en el arco.x4
Especifica la x- coordenada de extremo del arco (en unidades lógicas). este punto no tiene que mentir exactamente en el arco.y4
Especifica la y- coordenada de extremo del arco (en unidades lógicas). este punto no tiene que mentir exactamente en el arco.lpRect
Especifica el rectángulo delimitador. Puede pasar un objeto de CRect o un puntero a una estructura de RECT para este parámetro.ptStart
Especifica el punto inicial del arco. este punto no tiene que mentir exactamente en el arco. Puede pasar una estructura de puntos o un objeto de CPoint para este parámetro.ptEnd
Especifica el extremo del arco. este punto no tiene que mentir exactamente en el arco. Puede pasar una estructura de puntos o un objeto de CPoint para este parámetro.
Valor devuelto
Distinto de cero si la función es correcta; si no 0.
Comentarios
El centro del arco es el centro del rectángulo delimitador especificado por x1, y1, x2, y y2 (por lpRect). Los puntos el inicio y de finalización del arco se especifican mediante x3, y3, x4, y y4 (por ptStart y ptEnd).
El arco se dibuja con el lápiz seleccionado, un desplazamiento en una dirección inicial. Dos líneas adicionales se extraen de cada extremo en el centro del arco. El área empanada- cuyas referencias se rellena con el pincel actual. Si x3 es igual a x4 y y3 es igual a y4, el resultado es una elipse con una única línea del centro de la elipse al punto (x3, y3) o (x4, y4).
La ilustración dibujado por esta función extiende hasta pero no incluye las coordenadas de la derecha e inferior. esto significa que el alto de la figura es y2 – y1 y el ancho de la figura es x2 – x1. El ancho y el alto del rectángulo delimitador deben ser mayores que 2 unidades y menos de 32.767 unidades.
Ejemplo
void CDCView::DrawPie(CDC* pDC)
{
// Fill the client area with a simple pie chart. A
// big blue slice covers 75% of the pie, from
// 6 o'clock to 3 o'clock. This portion is filled
// with blue and has a blue edge. The remaining 25%
// is filled with a red, diagonal hatch and has
// a red edge.
// 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->Pie(rectClient,
CPoint(rectClient.right, rectClient.CenterPoint().y),
CPoint(rectClient.CenterPoint().x, rectClient.right));
// Draw the remaining quarter slice from 6 o'clock
// to 3 o'clock, counterclockwise, in a red pen with
// the hatched brush.
pDC->SelectObject(&penRed);
pDC->SelectObject(&brushRed);
// Same parameters, but reverse start and end points.
pDC->Pie(rectClient,
CPoint(rectClient.CenterPoint().x, rectClient.right),
CPoint(rectClient.right, rectClient.CenterPoint().y));
// Restore the previous pen.
pDC->SelectObject(pOldPen);
}
Requisitos
encabezado: afxwin.h