Partager via


ID2D1RenderTarget::D rawRoundedRectangle(constD2D1_ROUNDED_RECT*,ID2D1Brush*,FLOAT,ID2D1StrokeStyle*) méthode (d2d1.h)

Dessine le contour du rectangle arrondi spécifié à l’aide du style de trait spécifié.

Syntaxe

void DrawRoundedRectangle(
  const D2D1_ROUNDED_RECT *roundedRect,
  ID2D1Brush              *brush,
  FLOAT                   strokeWidth,
  ID2D1StrokeStyle        *strokeStyle
);

Paramètres

roundedRect

Type : [in] const D2D1_ROUNDED_RECT*

Dimensions du rectangle arrondi à dessiner, en pixels indépendants de l’appareil.

brush

Type : [in] ID2D1Brush*

Pinceau utilisé pour peindre le contour du rectangle arrondi.

strokeWidth

Type : [in] FLOAT

Largeur du trait, en pixels indépendants de l’appareil. La valeur doit être supérieure ou égale à 0,0f. Si ce paramètre n’est pas spécifié, la valeur par défaut est 1.0f. Le trait est centré sur la ligne.

strokeStyle

Type : [in, facultatif] ID2D1StrokeStyle*

Style du trait du rectangle arrondi ou NULL pour peindre un trait plein. La valeur par défaut est NULL.

Valeur de retour

None

Remarques

Cette méthode ne retourne pas de code d’erreur en cas d’échec. Pour déterminer si une opération de dessin (telle que DrawRoundedRectangle) a échoué, case activée le résultat retourné par les méthodes ID2D1RenderTarget::EndDraw ou ID2D1RenderTarget::Flush.

Exemples

L’exemple suivant utilise les méthodes DrawRoundedRectangle et FillRoundedRectangle pour tracer et remplir un rectangle arrondi. Cet exemple génère la sortie illustrée dans l’illustration suivante.

Illustration de quatre rectangles arrondis avec différents styles de traits et remplissages
//  Called whenever the application needs to display the client
//  window.
HRESULT DrawAndFillRoundedRectangleExample::OnRender()
{
    HRESULT hr;

    // Create the render target and brushes if they
    // don't already exists.
    hr = CreateDeviceResources();

    if (SUCCEEDED(hr))
    {
        // Retrieve the size of the render target.
        D2D1_SIZE_F renderTargetSize = m_pRenderTarget->GetSize();

        m_pRenderTarget->BeginDraw();
        m_pRenderTarget->SetTransform(D2D1::Matrix3x2F::Identity());
        m_pRenderTarget->Clear(D2D1::ColorF(D2D1::ColorF::White));

        // Paint a grid background.
        m_pRenderTarget->FillRectangle(
            D2D1::RectF(0.0f, 0.0f, renderTargetSize.width, renderTargetSize.height),
            m_pGridPatternBitmapBrush
            );

        // Define a rounded rectangle.
        D2D1_ROUNDED_RECT roundedRect = D2D1::RoundedRect(
            D2D1::RectF(20.f, 20.f, 150.f, 100.f),
            10.f,
            10.f
            );

        // Draw the rectangle.
        m_pRenderTarget->DrawRoundedRectangle(roundedRect, m_pBlackBrush, 10.f);

        // Apply a translation transform.
        m_pRenderTarget->SetTransform(D2D1::Matrix3x2F::Translation(200.f, 0.f));

        // Draw the rounded rectangle again, this time with a dashed stroke.
        m_pRenderTarget->DrawRoundedRectangle(roundedRect, m_pBlackBrush, 10.f, m_pStrokeStyle);

        // Apply another translation transform.
        m_pRenderTarget->SetTransform(D2D1::Matrix3x2F::Translation(0.f, 150.f));

        // Draw, then fill the rounded rectangle.
        m_pRenderTarget->DrawRoundedRectangle(roundedRect, m_pBlackBrush, 10.f, m_pStrokeStyle);
        m_pRenderTarget->FillRoundedRectangle(roundedRect, m_pSilverBrush);

        // Apply another translation transform.
        m_pRenderTarget->SetTransform(D2D1::Matrix3x2F::Translation(200.f, 150.f));

        // Fill, then draw the rounded rectangle.
        m_pRenderTarget->FillRoundedRectangle(roundedRect, m_pSilverBrush);
        m_pRenderTarget->DrawRoundedRectangle(roundedRect, m_pBlackBrush, 10.f, m_pStrokeStyle);

        hr = m_pRenderTarget->EndDraw();

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

    return hr;
}

Configuration requise

   
Plateforme cible Windows
En-tête d2d1.h
Bibliothèque D2d1.lib
DLL D2d1.dll

Voir aussi

D2D1::RoundedRect

Comment dessiner et remplir une forme de base

ID2D1RenderTarget