Metode ID2D1RenderTarget::FillRoundedRectangle(constD2D1_ROUNDED_RECT*,ID2D1Brush*) (d2d1.h)

Melukis interior persegi panjang bulat yang ditentukan.

Sintaks

void FillRoundedRectangle(
       const D2D1_ROUNDED_RECT *roundedRect,
  [in] ID2D1Brush              *brush
);

Parameter

roundedRect

Jenis: [in] const D2D1_ROUNDED_RECT*

Dimensi persegi panjang bulat untuk dicat, dalam piksel independen perangkat.

[in] brush

Jenis: [in] ID2D1Brush*

Kuas yang digunakan untuk melukis interior persegi panjang bulat.

Nilai kembali

Tidak ada

Keterangan

Metode ini tidak mengembalikan kode kesalahan jika gagal. Untuk menentukan apakah operasi menggambar (seperti FillRoundedRectangle) gagal, periksa hasil yang dikembalikan oleh metode ID2D1RenderTarget::EndDraw atau ID2D1RenderTarget::Flush .

Contoh

Contoh berikut menggunakan metode DrawRoundedRectangle dan FillRoundedRectangle untuk menguraikan dan mengisi persegi panjang bulat. Contoh ini menghasilkan output yang ditunjukkan dalam ilustrasi berikut.

Ilustrasi empat persegi panjang bulat dengan gaya dan isian goresan yang berbeda
//  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;
}

Persyaratan

   
Target Platform Windows
Header d2d1.h
Pustaka D2d1.lib
DLL D2d1.dll

Lihat juga

D2D1::RoundedRect

Cara Menggambar dan Mengisi Bentuk Dasar

ID2D1RenderTarget