次の方法で共有


CDC::Polygon

更新 : 2007 年 11 月

直線で結ばれた 2 つ以上の点 (頂点) から構成される多角形を現在のペンを使って描画します。

BOOL Polygon(
   LPPOINT lpPoints,
   int nCount 
);

パラメータ

  • lpPoints
    多角形の頂点を指定する点の配列を指定します。配列内のそれぞれの点は POINT 構造体または CPoint オブジェクトです。

  • nCount
    配列内に与えられた頂点の数を指定します。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

必要に応じて、システムは最後の頂点と最初の頂点を線分で結ぶことによって、多角形を自動的に閉じます。

現在の多角形塗りつぶしモードは、GetPolyFillModeSetPolyFillMode メンバ関数を使って取得または設定できます。

使用例

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

参照

参照

CDC クラス

階層図

CDC::GetPolyFillMode

CDC::Polyline

CDC::PolyPolygon

CDC::SetPolyFillMode

CPoint クラス

Polygon

その他の技術情報

CDC のメンバ