Metode ID2D1RenderTarget::FillRectangle(constD2D1_RECT_F*,ID2D1Brush*) (d2d1.h)
Mengecat interior persegi panjang yang ditentukan.
Sintaks
void FillRectangle(
const D2D1_RECT_F *rect,
ID2D1Brush *brush
);
Parameter
rect
Jenis: [in] const D2D1_RECT_F*
Dimensi persegi panjang untuk dicat, dalam piksel independen perangkat.
brush
Jenis: [in] ID2D1Brush*
Kuas yang digunakan untuk melukis interior persegi panjang.
Mengembalikan nilai
Tidak ada
Keterangan
Metode ini tidak mengembalikan kode kesalahan jika gagal. Untuk menentukan apakah operasi menggambar (seperti FillRectangle) gagal, periksa hasil yang dikembalikan oleh metode ID2D1RenderTarget::EndDraw atau ID2D1RenderTarget::Flush .
Contoh
Contoh berikut menggunakan ID2D1HwndRenderTarget untuk menggambar dan mengisi beberapa persegi panjang. Contoh ini menghasilkan output yang ditunjukkan dalam ilustrasi berikut.
// This method discards device-specific
// resources if the Direct3D device disappears during execution and
// recreates the resources the next time it's invoked.
HRESULT DemoApp::OnRender()
{
HRESULT hr = S_OK;
hr = CreateDeviceResources();
if (SUCCEEDED(hr))
{
m_pRenderTarget->BeginDraw();
m_pRenderTarget->SetTransform(D2D1::Matrix3x2F::Identity());
m_pRenderTarget->Clear(D2D1::ColorF(D2D1::ColorF::White));
D2D1_SIZE_F rtSize = m_pRenderTarget->GetSize();
// Draw a grid background.
int width = static_cast<int>(rtSize.width);
int height = static_cast<int>(rtSize.height);
for (int x = 0; x < width; x += 10)
{
m_pRenderTarget->DrawLine(
D2D1::Point2F(static_cast<FLOAT>(x), 0.0f),
D2D1::Point2F(static_cast<FLOAT>(x), rtSize.height),
m_pLightSlateGrayBrush,
0.5f
);
}
for (int y = 0; y < height; y += 10)
{
m_pRenderTarget->DrawLine(
D2D1::Point2F(0.0f, static_cast<FLOAT>(y)),
D2D1::Point2F(rtSize.width, static_cast<FLOAT>(y)),
m_pLightSlateGrayBrush,
0.5f
);
}
// Draw two rectangles.
D2D1_RECT_F rectangle1 = D2D1::RectF(
rtSize.width/2 - 50.0f,
rtSize.height/2 - 50.0f,
rtSize.width/2 + 50.0f,
rtSize.height/2 + 50.0f
);
D2D1_RECT_F rectangle2 = D2D1::RectF(
rtSize.width/2 - 100.0f,
rtSize.height/2 - 100.0f,
rtSize.width/2 + 100.0f,
rtSize.height/2 + 100.0f
);
// Draw a filled rectangle.
m_pRenderTarget->FillRectangle(&rectangle1, m_pLightSlateGrayBrush);
// Draw the outline of a rectangle.
m_pRenderTarget->DrawRectangle(&rectangle2, m_pCornflowerBlueBrush);
hr = m_pRenderTarget->EndDraw();
}
if (hr == D2DERR_RECREATE_TARGET)
{
hr = S_OK;
DiscardDeviceResources();
}
return hr;
}
Untuk tutorial terkait, lihat Membuat aplikasi Direct2D sederhana.
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Windows |
Header | d2d1.h (termasuk D2d1.h) |
Pustaka | D2d1.lib |
DLL | D2d1.dll |