ID2D1RenderTarget::D rawRoundedRectangle(constD2D1_ROUNDED_RECT*,ID2D1Brush*,FLOAT,ID2D1StrokeStyle*) (d2d1.h)
Dibuja el contorno del rectángulo especificado con el estilo de trazo especificado.
Sintaxis
void DrawRoundedRectangle(
const D2D1_ROUNDED_RECT *roundedRect,
ID2D1Brush *brush,
FLOAT strokeWidth,
ID2D1StrokeStyle *strokeStyle
);
Parámetros
roundedRect
Tipo: [in] const D2D1_ROUNDED_RECT*
Las dimensiones del rectángulo redondeado que se dibujará, en píxeles independientes del dispositivo.
brush
Tipo: [in] ID2D1Brush*
El pincel utilizado para pintar el contorno del rectángulo redondeado.
strokeWidth
Tipo: [in] FLOAT
Ancho del trazo, en píxeles independientes del dispositivo. El valor debe ser mayor o igual que 0,0f. Si no se especifica este parámetro, el valor predeterminado es 1.0f. El trazo se centra en la línea.
strokeStyle
Tipo: [in, opcional] ID2D1StrokeStyle*
Estilo del trazo del rectángulo redondeado o NULL para pintar un trazo sólido. El valor predeterminado es NULL.
Valor devuelto
None
Observaciones
Este método no devuelve un código de error si se produce un error. Para determinar si se produjo un error en una operación de dibujo (como DrawRoundedRectangle), compruebe el resultado devuelto por los métodos ID2D1RenderTarget::EndDraw o ID2D1RenderTarget::Flush .
Ejemplos
En el ejemplo siguiente se usan los métodos DrawRoundedRectangle y FillRoundedRectangle para describir y rellenar un rectángulo redondeado. En este ejemplo se genera la salida que se muestra en la ilustración siguiente.
// 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;
}
Requisitos
Plataforma de destino | Windows |
Encabezado | d2d1.h |
Library | D2d1.lib |
Archivo DLL | D2d1.dll |