ID2D1RenderTarget::D rawRoundedRectangle(constD2D1_ROUNDED_RECT*,ID2D1Brush*,FLOAT,ID2D1StrokeStyle*) 메서드(d2d1.h)
지정된 스트로크 스타일을 사용하여 지정된 둥근 사각형의 윤곽선을 그립니다.
구문
void DrawRoundedRectangle(
const D2D1_ROUNDED_RECT *roundedRect,
ID2D1Brush *brush,
FLOAT strokeWidth,
ID2D1StrokeStyle *strokeStyle
);
매개 변수
roundedRect
형식: [in] const D2D1_ROUNDED_RECT*
그릴 둥근 사각형의 크기(디바이스 독립적 픽셀)입니다.
brush
형식: [in] ID2D1Brush*
둥근 사각형의 윤곽선을 그리는 데 사용되는 브러시입니다.
strokeWidth
형식: [in] FLOAT
스트로크의 너비(디바이스 독립적 픽셀)입니다. 값은 0.0f보다 크거나 같아야 합니다. 이 매개 변수를 지정하지 않으면 기본값은 1.0f입니다. 스트로크는 선 가운데에 있습니다.
strokeStyle
형식: [in, optional] ID2D1StrokeStyle*
둥근 사각형 스트로크의 스타일 또는 단색 스트로크를 그리는 NULL 입니다. 기본값은 NULL입니다.
반환 값
없음
설명
이 메서드는 실패할 경우 오류 코드를 반환하지 않습니다. 그리기 작업(예: DrawRoundedRectangle)이 실패했는지 여부를 확인하려면 ID2D1RenderTarget::EndDraw 또는 ID2D1RenderTarget::Flush 메서드에서 반환된 결과를 검사.
예제
다음 예제에서는 DrawRoundedRectangle 및 FillRoundedRoundedRectangle 메서드를 사용하여 둥근 사각형을 윤곽선으로 표시하고 채웁니다. 이 예제에서는 다음 그림에 표시된 출력을 생성합니다.
// 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;
}
요구 사항
대상 플랫폼 | Windows |
헤더 | d2d1.h |
라이브러리 | D2d1.lib |
DLL | D2d1.dll |