Share via


ID2D1SimplifiedGeometrySink::EndFigure メソッド

現在の図を終了します。必要に応じて、図を閉じることもできます。

構文

virtual void EndFigure(
    D2D1_FIGURE_END figureEnd
) = 0;

パラメーター

  • figureEnd
    D2D1_FIGURE_END 現在の図を閉じるかどうかを示す値。図を閉じる場合は、現在の点と BeginFigure によって指定された始点との間に直線が描画されます。

戻り値

This は値を返しません。

解説

対応する BeginFigure の呼び出しが存在しない状態でこのメソッドを呼び出すと、ジオメトリ シンクがエラー状態になります。後続の呼び出しは無視され、Close メソッドが呼び出されたときに全般的なエラーが返されます。

次の例では、ID2D1PathGeometry を作成してシンクを取得し、シンクを使用して砂時計を定義します。次に、D2D1_FIGURE_END_CLOSED 値を指定した EndFigure を呼び出して砂時計の作成を終了します。完全な例については、「複雑な図形を描画して塗りつぶす方法」を参照してください。

  ID2D1GeometrySink *pSink = NULL;

// Create a path geometry.
if (SUCCEEDED(hr))
{
    hr = m_pD2DFactory->CreatePathGeometry(&m_pPathGeometry);

    if (SUCCEEDED(hr))
    {
        // Write to the path geometry using the geometry sink.
        hr = m_pPathGeometry->Open(&pSink);

        if (SUCCEEDED(hr))
        {
            pSink->BeginFigure(
                D2D1::Point2F(0, 0),
                D2D1_FIGURE_BEGIN_FILLED
                );

            pSink->AddLine(D2D1::Point2F(200, 0));

            pSink->AddBezier(
                D2D1::BezierSegment(
                    D2D1::Point2F(150, 50),
                    D2D1::Point2F(150, 150),
                    D2D1::Point2F(200, 200))
                );

            pSink->AddLine(D2D1::Point2F(0, 200));

            pSink->AddBezier(
                D2D1::BezierSegment(
                    D2D1::Point2F(50, 150),
                    D2D1::Point2F(50, 50),
                    D2D1::Point2F(0, 0))
                );

            pSink->EndFigure(D2D1_FIGURE_END_CLOSED);

            hr = pSink->Close();
        }
        SafeRelease(&pSink);
    }
}

要件

クライアントの最小要件

Windows 7, Windows Vista SP2 および Windows Vista 用のプラットフォーム更新プログラム

サーバーの最小要件

Windows Server 2008 R2, Windows Server 2008 SP2 および Windows Server 2008 用のプラットフォーム更新プログラム

ヘッダー

D2d1.h

ライブラリ

D2d1.lib

DLL

D2d1.dll

参照

ID2D1SimplifiedGeometrySink