ID2D1RenderTarget::D rawRoundedRectangle(constD2D1_ROUNDED_RECT*,ID2D1Brush*,FLOAT,ID2D1StrokeStyle*)-Methode (d2d1.h)
Zeichnet den Umriss des angegebenen abgerundeten Rechtecks unter Verwendung des angegebenen Strichstils.
Syntax
void DrawRoundedRectangle(
const D2D1_ROUNDED_RECT *roundedRect,
ID2D1Brush *brush,
FLOAT strokeWidth,
ID2D1StrokeStyle *strokeStyle
);
Parameter
roundedRect
Typ: [in] const D2D1_ROUNDED_RECT*
Die Abmessungen des zu zeichnenden abgerundeten Rechtecks in geräteunabhängigen Pixeln.
brush
Typ: [in] ID2D1Brush*
Der Pinsel, der verwendet wird, um den Umriss des abgerundeten Rechtecks zu zeichnen.
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 angegeben. Der Strich wird auf der Linie zentriert.
strokeStyle
Typ: [in, optional] ID2D1StrokeStyle*
Der Stil des Strichs des gerundeten Rechtecks oder NULL , um einen vollfarbigen Strich zu zeichnen. Der Standardwert ist NULL.
Rückgabewert
Keine
Bemerkungen
Diese Methode gibt keinen Fehlercode zurück, wenn ein Fehler auftritt. Um zu ermitteln, ob bei einem Zeichnungsvorgang (z. B . DrawRoundedRectangle) ein Fehler aufgetreten ist, überprüfen Sie das ergebnis, das von den Methoden ID2D1RenderTarget::EndDraw oder ID2D1RenderTarget::Flush zurückgegeben wurde.
Beispiele
Im folgenden Beispiel werden die Methoden DrawRoundedRectangle und FillRoundedRectangle verwendet, um ein abgerundetes Rechteck zu skizzieren und zu füllen. In diesem Beispiel wird die in der folgenden Abbildung dargestellte Ausgabe erzeugt.
// 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;
}
Anforderungen
Zielplattform | Windows |
Kopfzeile | d2d1.h |
Bibliothek | D2d1.lib |
DLL | D2d1.dll |