GraphicsPathIterator::NextMarker(constGraphicsPath*) メソッド (gdipluspath.h)

GraphicsPathIterator::NextMarker メソッドは、この反復子の関連付けられたパスの次のマーカー区切りセクションを取得します。

構文

INT NextMarker(
  [out] const GraphicsPath *path
);

パラメーター

[out] path

種類: GraphicsPath*

GraphicsPath オブジェクトへのポインター。 このメソッドは、取得したセクションのデータ ポイントと一致するように、この GraphicsPath オブジェクトのデータ ポイントを設定します。

戻り値

型: INT

このメソッドは、取得したセクションのデータ ポイントの数を返します。 取得するマーカー区切りセクションがこれ以上ない場合、このメソッドは 0 を返します。

解説

パスには、線と曲線を定義するデータ ポイントの配列があります。 パスの SetMarker メソッドを呼び出して、配列内の特定のポイントをマーカーとして指定できます。 これらのマーカー ポイントは、パスをセクションに分割します。

反復子の GraphicsPathIterator::NextMarker メソッドを初めて呼び出すと、その反復子の関連付けられたパスの最初のマーカー区切りセクションが取得されます。 2 回目は、2 番目のセクションを取得します。などです。 GraphicsPathIterator::NextSubpath を呼び出すたびに、取得したセクション内のデータ ポイントの数が返されます。 セクションが残っていない場合は、0 を返します。

次の例では 、GraphicsPath オブジェクトを作成し、パスに 5 つの図形を追加します。 SetMarker メソッドの呼び出しにより、パスに 2 つのマーカーが配置されます。 最初のマーカーは図形の末尾にあり、2 番目のマーカーは図の中央にあります。 このコードでは 、GraphicsPath オブジェクトのアドレスを GraphicsPathIterator コンストラクターに渡して、パスに関連付けられた反復子を作成します。 次に、反復子の GraphicsPathIterator::NextMarker メソッドを 2 回呼び出して、パスの 2 番目のマーカー区切りセクションを取得します。 最後に、コードはパスの取得されたセクションを描画します。


VOID NextMarkerExample(HDC hdc)
{
   Graphics graphics(hdc);

   // Create a graphics path with five figures (subpaths).
   GraphicsPath path;

   path.AddRectangle(Rect(20, 20, 60, 30));
   path.SetMarker();                          // first marker

   path.AddLine(100, 20, 160, 50);
   path.AddArc(180, 20, 60, 30, 0.0f, 180.0f);

   path.AddRectangle(Rect(260, 20, 60, 30));

   path.AddLine(340, 20, 400, 50);
   path.SetMarker();                          // second marker
   path.AddArc(340, 20, 60, 30, 0.0f, 180.0f);
   path.CloseFigure();
  
   path.AddRectangle(Rect(420, 20, 60, 30));
 
   // Create an iterator, and associate it with the path.
   GraphicsPathIterator iterator(&path);

   // Get the second marker-delimited section by calling NextMarker twice.
   GraphicsPath section;
   INT count;
   count = iterator.NextMarker(&section);
   count = iterator.NextMarker(&section);

   // The variable "count" now holds the number of 
   // data points in the second marker-delimited section.

   // Draw the retrieved section.
   Pen bluePen(Color(255, 0, 0, 255));
   graphics.DrawPath(&bluePen, &section);
}

要件

   
サポートされている最小のクライアント Windows XP、Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー gdipluspath.h (Gdiplus.h を含む)
Library Gdiplus.lib
[DLL] Gdiplus.dll

関連項目

パスの作成および描画

GetPathData

Graphicspath

GraphicsPathIterator

GraphicsPathIterator::NextSubpath メソッド

NextMarker

パス