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 |