idWriteBitmapRenderTarget 接口 (dwrite.h)

封装与设备无关的 32 位位位图和设备上下文,可用于呈现字形。

继承

IDWriteBitmapRenderTarget 接口继承自 IUnknown 接口。 IDWriteBitmapRenderTarget 还包含以下类型的成员:

方法

IDWriteBitmapRenderTarget 接口包含以下方法。

 
IDWriteBitmapRenderTarget::D rawGlyphRun

将一系列字形绘制到位于指定位置的位图目标。
IDWriteBitmapRenderTarget::GetCurrentTransform

获取将抽象坐标映射到 DIP 的转换。 默认情况下,这是标识转换。 请注意,这与基础设备上下文的世界转换无关。
IDWriteBitmapRenderTarget::GetMemoryDC

获取内存设备上下文的句柄。
IDWriteBitmapRenderTarget::GetPixelsPerDip

获取每个 DIP 的位图像素数。
IDWriteBitmapRenderTarget::GetSize

获取目标位图的尺寸。
IDWriteBitmapRenderTarget::Resize

调整位图的大小。
IDWriteBitmapRenderTarget::SetCurrentTransform

设置将抽象坐标映射到 DIP (与设备无关的像素) 的转换。 这不会影响基础设备上下文的世界转换。
IDWriteBitmapRenderTarget::SetPixelsPerDip

设置每个 DIP 的位图像素数 (与设备无关的像素) 。 DIP 为 1/96 英寸,因此,如果每英寸像素除以 96,则此值为数字。

备注

使用 IDWriteGdiInterop::CreateBitmapRenderTarget 方法创建 IDWriteBitmapRenderTarget,如以下代码所示。

if (SUCCEEDED(hr))
{
    hr = g_pGdiInterop->CreateBitmapRenderTarget(hdc, r.right, r.bottom, &g_pBitmapRenderTarget);
}

IDWriteGdiInterop::CreateBitmapRenderTarget 采用 DC 和所需宽度和高度的句柄。 在上面的示例中,给定的宽度和高度是窗口矩形的大小。

渲染

使用 IDWriteBitmapRenderTarget 呈现到位图的一种方法是实现派生自 IDWriteTextRenderer 接口的自定义呈现器接口。 在自定义呈现器的 DrawGlyphRun 方法的实现中,调用 IDWriteBitmapRenderTarget::D rawGlyphRun 方法来绘制字形,如以下代码所示。
STDMETHODIMP GdiTextRenderer::DrawGlyphRun(
    __maybenull void* clientDrawingContext,
    FLOAT baselineOriginX,
    FLOAT baselineOriginY,
    DWRITE_MEASURING_MODE measuringMode,
    __in DWRITE_GLYPH_RUN const* glyphRun,
    __in DWRITE_GLYPH_RUN_DESCRIPTION const* glyphRunDescription,
    IUnknown* clientDrawingEffect
    )
{
    HRESULT hr = S_OK;

    // Pass on the drawing call to the render target to do the real work.
    RECT dirtyRect = {0};

    hr = pRenderTarget_->DrawGlyphRun(
        baselineOriginX,
        baselineOriginY,
        measuringMode,
        glyphRun,
        pRenderingParams_,
        RGB(0,200,255),
        &dirtyRect
        );
    

    return hr;
}

IDWriteBitmapRenderTarget 封装并呈现到内存中的位图。 GetMemoryDC 函数返回此位图的设备上下文的句柄。

要求

   
最低受支持的客户端 Windows 7、带 SP2 的 Windows Vista 和适用于 Windows Vista 的平台更新 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows Server 2008 R2、Windows Server 2008 SP2 和适用于 Windows Server 2008 的平台更新 [桌面应用 |UWP 应用]
目标平台 Windows
标头 dwrite.h