Compartilhar via


Método ID2D1RenderTarget::FillRectangle(constD2D1_RECT_F*,ID2D1Brush*) (d2d1.h)

Pinta o interior do retângulo especificado.

Sintaxe

void FillRectangle(
  const D2D1_RECT_F *rect,
  ID2D1Brush        *brush
);

Parâmetros

rect

Tipo: [in] const D2D1_RECT_F*

As dimensões do retângulo a ser pintado, em pixels independentes do dispositivo.

brush

Tipo: [in] ID2D1Brush*

O pincel usado para pintar o interior do retângulo.

Retornar valor

Nenhum

Comentários

Esse método não retornará um código de erro se falhar. Para determinar se uma operação de desenho (como FillRectangle) falhou, marcar o resultado retornado pelos métodos ID2D1RenderTarget::EndDraw ou ID2D1RenderTarget::Flush.

Exemplos

O exemplo a seguir usa um ID2D1HwndRenderTarget para desenhar e preencher vários retângulos. Este exemplo produz a saída mostrada na ilustração a seguir.

Ilustração de dois retângulos em um plano de fundo de grade
// 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;
}

Para obter um tutorial relacionado, consulte Criar um aplicativo de Direct2D simples.

Requisitos

Requisito Valor
Plataforma de Destino Windows
Cabeçalho d2d1.h (inclua D2d1.h)
Biblioteca D2d1.lib
DLL D2d1.dll

Confira também

Criar um aplicativo Direct2D simples

ID2D1RenderTarget