Freigeben über


ID2D1RenderTarget::D rawRectangle(constD2D1_RECT_F&,ID2D1Brush*,FLOAT,ID2D1StrokeStyle*)-Methode (d2d1.h)

Zeichnet den Umriss eines Rechtecks, das die angegebenen Abmessungen und den angegebenen Strichstil aufweist.

Syntax

void DrawRectangle(
  const D2D1_RECT_F & rect,
  ID2D1Brush          *brush,
  FLOAT               strokeWidth,
  ID2D1StrokeStyle    *strokeStyle
);

Parameter

rect

Typ: [in] const D2D1_RECT_F &

Die Abmessungen des zu zeichnenden Rechtecks in geräteunabhängigen Pixeln.

brush

Typ: [in] ID2D1Brush*

Der Pinsel, der zum Zeichnen des Strichs des Rechtecks verwendet wird.

strokeWidth

Typ: [in] FLOAT

Die Breite des Strichs in geräteunabhängigen Pixeln. Der Wert muss größer oder gleich 0,0f sein. Wenn dieser Parameter nicht angegeben ist, wird standardmäßig 1.0f verwendet. Der Strich wird auf der Linie zentriert.

strokeStyle

Typ: [in, optional] ID2D1StrokeStyle*

Der Stil des zu zeichnenden Strichs oder NULL zum Zeichnen eines Volltonstrichs.

Rückgabewert

Keine

Bemerkungen

Wenn diese Methode fehlschlägt, wird kein Fehlercode zurückgegeben. Um festzustellen, ob bei einer Zeichnungsmethode (z. B. DrawRectangle) ein Fehler aufgetreten ist, überprüfen Sie das ergebnis, das von der ID2D1RenderTarget::EndDraw- oder ID2D1RenderTarget::Flush-Methode 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 gezeigte Ausgabe erzeugt.

Abbildung von zwei Rechtecken auf einem Rasterhintergrund
// This method discards device-specific
// resources if the Direct3D device disappears 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(&rectangle1, m_pLightSlateGrayBrush);

        // Draw the outline of a rectangle.
        m_pRenderTarget->DrawRectangle(&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
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

Einfache Direct2D-Anwendung erstellen

Zeichnen und Ausfüllen einer Einfachen Form

ID2D1RenderTarget