Metodo ID2D1RenderTarget::FillRectangle(constD2D1_RECT_F*,ID2D1Brush*) (d2d1.h)
Disegna l'interno del rettangolo specificato.
Sintassi
void FillRectangle(
const D2D1_RECT_F *rect,
ID2D1Brush *brush
);
Parametri
rect
Tipo: [in] const D2D1_RECT_F*
Dimensione del rettangolo da disegnare, in pixel indipendenti dal dispositivo.
brush
Tipo: [in] ID2D1Brush*
Pennello utilizzato per disegnare l'interno del rettangolo.
Valore restituito
nessuno
Osservazioni
Questo metodo non restituisce un codice di errore in caso di errore. Per determinare se un'operazione di disegno (ad esempio FillRectangle) non è riuscita, controllare il risultato restituito dai metodi ID2D1RenderTarget::EndDraw o ID2D1RenderTarget::Flush .
Esempio
Nell'esempio seguente viene usato un oggetto ID2D1HwndRenderTarget per disegnare e riempire diversi rettangoli. In questo esempio viene generato l'output illustrato nella figura seguente.
// 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;
}
Per un'esercitazione correlata, vedere Creare una semplice applicazione Direct2D.
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Windows |
Intestazione | d2d1.h (include D2d1.h) |
Libreria | D2d1.lib |
DLL | D2d1.dll |