Compartir a través de


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

Pinta el interior del rectángulo especificado.

Sintaxis

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

Parámetros

rect

Tipo: [in] const D2D1_RECT_F*

Las dimensiones del rectángulo que se pintará, en píxeles independientes del dispositivo.

brush

Tipo: [in] ID2D1Brush*

El pincel usado para pintar el interior del rectángulo.

Valor devuelto

None

Observaciones

Este método no devuelve un código de error si se produce un error. Para determinar si se produjo un error en una operación de dibujo (como FillRectangle), compruebe el resultado devuelto por los métodos ID2D1RenderTarget::EndDraw o ID2D1RenderTarget::Flush .

Ejemplos

En el ejemplo siguiente se usa un ID2D1HwndRenderTarget para dibujar y rellenar varios rectángulos. En este ejemplo se genera la salida que se muestra en la ilustración siguiente.

Ilustración de dos rectángulos en un fondo de cuadrícula
// 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 ver un tutorial relacionado, consulte Creación de una aplicación direct2D sencilla.

Requisitos

Requisito Value
Plataforma de destino Windows
Encabezado d2d1.h (incluya D2d1.h)
Library D2d1.lib
Archivo DLL D2d1.dll

Consulte también

Creación de aplicación Direct2D simpl

ID2D1RenderTarget