METODE ID2D1RenderTarget::D rawRectangle(constD2D1_RECT_F&,ID2D1Brush*,FLOAT,ID2D1StrokeStyle*) (d2d1.h)
Menggambar kerangka persegi panjang yang memiliki dimensi dan gaya goresan yang ditentukan.
Sintaks
void DrawRectangle(
const D2D1_RECT_F & rect,
ID2D1Brush *brush,
FLOAT strokeWidth,
ID2D1StrokeStyle *strokeStyle
);
Parameter
rect
Jenis: [in] const D2D1_RECT_F &
Dimensi persegi panjang yang akan digambar, dalam piksel independen perangkat.
brush
Jenis: [in] ID2D1Brush*
Kuas yang digunakan untuk mengecat goresan persegi panjang.
strokeWidth
Jenis: [in] FLOAT
Lebar goresan, dalam piksel independen perangkat. Nilai harus lebih besar dari atau sama dengan 0,0f. Jika parameter ini tidak ditentukan, parameter defaultnya adalah 1,0f. Stroke berpusat pada garis.
strokeStyle
Jenis: [in, opsional] ID2D1StrokeStyle*
Gaya goresan untuk dicat, atau NULL untuk melukis goresan padat.
Nilai kembali
Tidak ada
Keterangan
Ketika metode ini gagal, metode ini tidak mengembalikan kode kesalahan. Untuk menentukan apakah metode menggambar (seperti DrawRectangle) 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 |
---|---|
Klien minimum yang didukung | Windows 7, Windows Vista dengan SP2 dan Pembaruan Platform untuk Windows Vista [aplikasi desktop | Aplikasi UWP] |
Server minimum yang didukung | Windows Server 2008 R2, Windows Server 2008 dengan SP2 dan Pembaruan Platform untuk Windows Server 2008 [aplikasi desktop | Aplikasi UWP] |
Target Platform | Windows |
Header | d2d1.h |
Pustaka | D2d1.lib |
DLL | D2d1.dll |
Lihat juga
Membuat aplikasi Direct2D sederhana