2

私は現在 C++ で D2D を学習しており、塗りつぶされた四角形を作成しようとしていますが、私のコードは多少間違っているようです。 win32 winapi を含むウィンドウで、次に Draw 関数が呼び出されます)

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;
}

おそらく本当にばかげた小さな間違いですが、完全な長方形を埋める方法を本当に知りたいです

4

1 に答える 1

3

「指定された寸法とストローク スタイルを持つ長方形の輪郭を描画する」ID2D1RenderTarget::FillRectangleの代わりに、「指定された長方形の内部をペイントする」を呼び出してみてください。DrawRectangle

于 2014-12-06T18:12:33.717 に答える