CreateGridPatterentBrush(ID2D1RenderTarget* pRenderTarget, ID2D1BitmapBrush** ppBitmapBrush)的m_pRenderTarget没有CreateBitmapBrush成员函数怎么解决?

SUN 20 信誉分
2024-08-21T08:40:52.3766667+00:00

HRESULT CMainWindow::CreateGridPatterentBrush(ID2D1RenderTarget* pRenderTarget, ID2D1BitmapBrush** ppBitmapBrush)

{

ID2D1BitmapRenderTarget *pCompatibleRenderTarget = NULL;

HRESULT hr = pRenderTarget->CreateCompatibleRenderTarget(

    D2D1::SizeF(10.0f, 10.0f),

    &pCompatibleRenderTarget

    );

if (SUCCEEDED(hr))

{

    // Draw a pattern.

    ID2D1SolidColorBrush *pGridBrush = NULL;

    hr = pCompatibleRenderTarget->CreateSolidColorBrush(

        D2D1::ColorF(D2D1::ColorF(0.93f, 0.94f, 0.96f, 1.0f)),

        &pGridBrush

        );

    if (SUCCEEDED(hr))

    {

        pCompatibleRenderTarget->BeginDraw();

        pCompatibleRenderTarget->FillRectangle(D2D1::RectF(0.0f, 0.0f, 10.0f, 1.0f), pGridBrush);

        pCompatibleRenderTarget->FillRectangle(D2D1::RectF(0.0f, 0.1f, 1.0f, 10.0f), pGridBrush);

        pCompatibleRenderTarget->EndDraw();

        // Retrieve the bitmap from the render target.

        ID2D1Bitmap *pGridBitmap = NULL;

        hr = pCompatibleRenderTarget->GetBitmap(&pGridBitmap);

        if (SUCCEEDED(hr))

        {

            // Choose the tiling mode for the bitmap brush.

            D2D1_BITMAP_BRUSH_PROPERTIES brushProperties =

                D2D1::BitmapBrushProperties(D2D1_EXTEND_MODE_WRAP, D2D1_EXTEND_MODE_WRAP);

            // Create the bitmap brush.

            hr = m_pRenderTarget->CreateBitmapBrush(pGridBitmap, brushProperties, ppBitmapBrush);

            pGridBitmap->Release();

        }

        pGridBrush->Release();

    }

    pCompatibleRenderTarget->Release();

}

return hr;

return E_NOTIMPL;

}

屏幕截图 2024-08-21 163923

C++
C++
一种通用的高级编程语言,作为 C 编程语言的扩展而创建,除了用于低级别内存操作的功能外,还具有面向对象、泛型和功能性等特点。
148 个问题
{count} 票

1 个答案

排序依据: 非常有帮助
  1. Minxin Yu 12,251 信誉分 Microsoft 供应商
    2024-08-22T12:17:30.9833333+00:00

    您好,

    上面代码的完整示例,初始化方式查看代码:
    https://github.com/microsoft/Windows-classic-samples/tree/main/Samples/Win7Samples/multimedia/Direct2D/SimpleDirect2DApplication

    ID2D1HwndRenderTarget *m_pRenderTarget;


    如果答案是正确的,请点击“接受答案”并点赞。 如果您对此答案还有其他疑问,请点击“评论”。

    注意:如果您想接收相关电子邮件,请按照我们的文档中的步骤启用电子邮件通知 此线程的通知。


你的答案

问题作者可以将答案标记为“接受的答案”,这有助于用户了解已解决作者问题的答案。