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 メソッドと FillRoundedRectangle メソッドを使用して、丸い四角形のアウトラインと塗りつぶしを行います。 次の使用例は、次の図に示す出力を生成します。

ストロークのスタイルと塗りつぶしが異なる四角形を四角形で囲む図
//  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
Library D2d1.lib
[DLL] D2d1.dll

関連項目

D2D1::RoundedRect

基本的な図形を描画して塗りつぶす方法

ID2D1RenderTarget