gpt4 book ai didi

c++ - Direct2d + winapi 矩形未完全填充

转载 作者:搜寻专家 更新时间:2023-10-31 01:42:12 25 4
gpt4 key购买 nike

我目前正在用 C++ 学习 D2D,我正在尝试创建一个填充的矩形,但我的代码似乎有些错误,因为我最终得到的只是边缘被填充这是我的代码(在我用 win32 winapi 创建窗口后立即调用 Initialize,然后调用 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;
}

可能是一个非常愚蠢的小错误,但我真的很想知道如何填充完整的矩形

最佳答案

尝试调用 ID2D1RenderTarget::FillRectangle ,它“绘制指定矩形的内部”,而不是 DrawRectangle ,它“绘制具有指定尺寸和笔划样式的矩形的轮廓”。

关于c++ - Direct2d + winapi 矩形未完全填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27334707/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com