ID2D1RenderTarget::FillRectangle-Methoden

Zeichnet das Innere des angegebenen Rechtecks.

Überladeliste

Methode Beschreibung
FillRectangle(D2D1_RECT_F,ID2D1Brush&*) Zeichnet das Innere des angegebenen Rechtecks.
FillRectangle(D2D1_RECT_F*,ID2D1Brush*) Zeichnet das Innere des angegebenen Rechtecks.

Bemerkungen

Diese Methode gibt keinen Fehlercode zurück, wenn ein Fehler auftritt. Um zu ermitteln, ob bei einem Zeichnungsvorgang (z . B. FillRectangle) ein Fehler aufgetreten ist, überprüfen Sie das ergebnis, das von den Methoden ID2D1RenderTarget::EndDraw oder ID2D1RenderTarget::Flush zurückgegeben wird.

Beispiele

Im folgenden Beispiel wird ein ID2D1HwndRenderTarget verwendet, um mehrere Rechtecke zu zeichnen und zu füllen. In diesem Beispiel wird die in der folgenden Abbildung dargestellte Ausgabe erzeugt.

Abbildung von zwei Rechtecken auf einem Rasterhintergrund

// This method discards device-specific
// resources if the Direct3D device dissapears during execution and
// recreates the resources the next time it's invoked.
HRESULT DemoApp::OnRender()
{
    HRESULT hr = S_OK;

    hr = CreateDeviceResources();

    if (SUCCEEDED(hr))
    {
        m_pRenderTarget->BeginDraw();

        m_pRenderTarget->SetTransform(D2D1::Matrix3x2F::Identity());

        m_pRenderTarget->Clear(D2D1::ColorF(D2D1::ColorF::White));

        D2D1_SIZE_F rtSize = m_pRenderTarget->GetSize();

        // Draw a grid background.
        int width = static_cast<int>(rtSize.width);
        int height = static_cast<int>(rtSize.height);

        for (int x = 0; x < width; x += 10)
        {
            m_pRenderTarget->DrawLine(
                D2D1::Point2F(static_cast<FLOAT>(x), 0.0f),
                D2D1::Point2F(static_cast<FLOAT>(x), rtSize.height),
                m_pLightSlateGrayBrush,
                0.5f
                );
        }

        for (int y = 0; y < height; y += 10)
        {
            m_pRenderTarget->DrawLine(
                D2D1::Point2F(0.0f, static_cast<FLOAT>(y)),
                D2D1::Point2F(rtSize.width, static_cast<FLOAT>(y)),
                m_pLightSlateGrayBrush,
                0.5f
                );
        }

        // Draw two rectangles.
        D2D1_RECT_F rectangle1 = D2D1::RectF(
            rtSize.width/2 - 50.0f,
            rtSize.height/2 - 50.0f,
            rtSize.width/2 + 50.0f,
            rtSize.height/2 + 50.0f
            );

        D2D1_RECT_F rectangle2 = D2D1::RectF(
            rtSize.width/2 - 100.0f,
            rtSize.height/2 - 100.0f,
            rtSize.width/2 + 100.0f,
            rtSize.height/2 + 100.0f
            );


        // Draw a filled rectangle.
        m_pRenderTarget->FillRectangle(&amp;rectangle1, m_pLightSlateGrayBrush);

        // Draw the outline of a rectangle.
        m_pRenderTarget->DrawRectangle(&amp;rectangle2, m_pCornflowerBlueBrush);

        hr = m_pRenderTarget->EndDraw();
    }

    if (hr == D2DERR_RECREATE_TARGET)
    {
        hr = S_OK;
        DiscardDeviceResources();
    }

    return hr;
}

Ein verwandtes Tutorial finden Sie unter Erstellen einer einfachen Direct2D-Anwendung.

Anforderungen

Anforderung Wert
Header
D2d1_1.h (einschließlich D2d1.h)
Bibliothek
D2d1.lib
DLL
D2d1.dll

Siehe auch

ID2D1RenderTarget

Einfache Direct2D-Anwendung erstellen