CDC::Polygon
更新 : 2007 年 11 月
直線で結ばれた 2 つ以上の点 (頂点) から構成される多角形を現在のペンを使って描画します。
BOOL Polygon(
LPPOINT lpPoints,
int nCount
);
パラメータ
lpPoints
多角形の頂点を指定する点の配列を指定します。配列内のそれぞれの点は POINT 構造体または CPoint オブジェクトです。nCount
配列内に与えられた頂点の数を指定します。
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。
解説
必要に応じて、システムは最後の頂点と最初の頂点を線分で結ぶことによって、多角形を自動的に閉じます。
現在の多角形塗りつぶしモードは、GetPolyFillMode と SetPolyFillMode メンバ関数を使って取得または設定できます。
使用例
void CDCView::DrawPolygon(CDC* pDC)
{
// find the client area
CRect rect;
GetClientRect(rect);
// draw with a thick blue pen
CPen penBlue(PS_SOLID, 5, RGB(0, 0, 255));
CPen* pOldPen = pDC->SelectObject(&penBlue);
// and a solid red brush
CBrush brushRed(RGB(255, 0, 0));
CBrush* pOldBrush = pDC->SelectObject(&brushRed);
// Find the midpoints of the top, right, left, and bottom
// of the client area. They will be the vertices of our polygon.
CPoint pts[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;
// Calling Polygon() on that array will draw three lines
// between the points, as well as an additional line to
// close the shape--from the last point to the first point
// we specified.
pDC->Polygon(pts, 4);
// Put back the old objects.
pDC->SelectObject(pOldPen);
pDC->SelectObject(pOldBrush);
}
必要条件
ヘッダー : afxwin.h