Прямоугольник Direct2d + winapi заполнен не полностью

В настоящее время я изучаю D2D на С++, и я пытаюсь создать заполненный прямоугольник, и кажется, что мой код несколько неверен, потому что все, что я получаю, это только то, что край заполняется здесь, это мой код (Инициализация вызывается сразу после того, как я создал Окно с win32 winapi и далее вызывается Draw Function)

bool GraphicClass::Initialize()
{
    HRESULT result;
    //Initialize D2DFactory
    result = D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED, &_d2dFactory);
    if (FAILED(result))
    {
        return false;
    }
    D2D1_SIZE_U size = D2D1::SizeU(
        _rc.right - _rc.left,
        _rc.bottom - _rc.top
        );
    //Initialize D2DRenderTarget
    HRESULT hr = _d2dFactory->CreateHwndRenderTarget(
        D2D1::RenderTargetProperties(),
        D2D1::HwndRenderTargetProperties(
            _hwnd,size
        ),
        &_d2dRenderTarget
        );
    if (FAILED(result))
    {
        return false;
    }
    else
    {
        _d2dRenderTarget->CreateSolidColorBrush(
            D2D1::ColorF(D2D1::ColorF::Blue),
            &_blueBrush
            );
    }
    return true;
}

bool GraphicClass::DrawD2D()
{
    HRESULT result;
    _d2dRenderTarget->BeginDraw();
    _d2dRenderTarget->DrawRectangle(
        D2D1::RectF(
        _rc.left + 100.0f,
        _rc.top + 100.0f,
        _rc.right - 100.0f,
        _rc.bottom - 100.0f),
        _blueBrush);
    result = _d2dRenderTarget->EndDraw();
    if (FAILED(result))
    {
        return false;
    }
    return true;
}

вероятно, действительно глупая и маленькая ошибка, но я действительно хотел бы знать, как заполнить полный прямоугольник


person devincf    schedule 06.12.2014    source источник


Ответы (1)


Попробуйте вызвать ID2D1RenderTarget::FillRectangle, который "закрашивает внутреннюю часть указанный прямоугольник" вместо DrawRectangle, который "рисует контур прямоугольника с указанными размерами и стилем обводки».

person Chris Culter    schedule 06.12.2014
comment
обе ссылки битые - person Jacob Schneider; 19.05.2019