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.
// 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 |