ID2D1RenderTarget::FillRectangle(constD2D1_RECT_F&,ID2D1Brush*)-Methode (d2d1.h)
Zeichnet das Innere des angegebenen Rechtecks.
Syntax
void FillRectangle(
const D2D1_RECT_F & rect,
ID2D1Brush *brush
);
Parameter
rect
Typ: [in] const D2D1_RECT_F &
Die Dimension des zu zeichnenden Rechtecks in geräteunabhängigen Pixeln.
brush
Typ: [in] ID2D1Brush*
Der Pinsel, mit dem das Innere des Rechtecks gezeichnet wird.
Rückgabewert
Keine
Bemerkungen
Diese Methode gibt keinen Fehlercode zurück, wenn sie fehlschlägt. Um festzustellen, ob ein Zeichnungsvorgang (z. B. FillRectangle) fehlgeschlagen ist, überprüfen Sie das Ergebnis, das von den Methoden ID2D1RenderTarget::EndDraw oder ID2D1RenderTarget::Flush zurückgegeben wird.
Beispiele
Im folgenden Beispiel wird ein ID2D1HwndRenderTarget verwendet, um mehrere Rechtecke zu zeichnen und zu füllen. In diesem Beispiel wird die in der folgenden Abbildung gezeigte Ausgabe erzeugt.
// 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;
}
Ein verwandtes Tutorial finden Sie unter Erstellen einer einfachen Direct2D-Anwendung.
Anforderungen
Unterstützte Mindestversion (Client) | Windows 7, Windows Vista mit SP2 und Plattformupdate für Windows Vista [Desktop-Apps | UWP-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2008 R2, Windows Server 2008 mit SP2 und Plattformupdate für Windows Server 2008 [Desktop-Apps | UWP-Apps] |
Zielplattform | Windows |
Kopfzeile | d2d1.h |
Bibliothek | D2d1.lib |
DLL | D2d1.dll |