Share via


ID2D1PathGeometry::Open-Methode (d2d1.h)

Ruft die Geometriesenke ab, die zum Auffüllen der Pfadgeometrie mit Abbildungen und Segmenten verwendet wird.

Syntax

HRESULT Open(
  [out] ID2D1GeometrySink **geometrySink
);

Parameter

[out] geometrySink

Typ: ID2D1GeometrySink**

Wenn diese Methode zurückgibt, enthält geometrySink die Adresse eines Zeigers auf die Geometriesenke, die zum Auffüllen der Pfadgeometrie mit Abbildungen und Segmenten verwendet wird. Dieser Parameter wird nicht initialisiert übergeben.

Rückgabewert

Typ: HRESULT

Wenn diese Methode erfolgreich ist, wird S_OK zurückgegeben. Andernfalls wird ein HRESULT-Fehlercode zurückgegeben.

Hinweise

Da Pfadgeometrien unveränderlich sind und nur einmal aufgefüllt werden können, ist es ein Fehler, Open für eine Pfadgeometrie mehrmals aufzurufen.

Beachten Sie, dass der Füllmodus standardmäßig auf D2D1_FILL_MODE_ALTERNATE festgelegt ist. Um den Füllmodus festzulegen, rufen Sie SetFillMode vor dem ersten Aufruf von BeginFigure auf. Andernfalls wird die Geometriesenke in einen Fehlerzustand versetzt.

Beispiele

Im folgenden Beispiel wird eine ID2D1PathGeometry erstellt, eine Senke abgerufen und die Senke verwendet, um eine Sanduhrform zu definieren. Das vollständige Beispiel finden Sie unter Zeichnen und Ausfüllen einer komplexen Form.

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);
    }
}

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 7, Windows Vista mit SP2 und Plattformupdate für Windows Vista [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 R2, Windows Server 2008 mit SP2 und Plattformupdate für Windows Server 2008 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile d2d1.h
Bibliothek D2d1.lib
DLL D2d1.dll

Weitere Informationen

ID2D1PathGeometry