Win32 文本 API 比较

对于正在迁移其 Win32 应用程序代码的开发人员,下表列出了 Win32 文本 API 以及DirectWrite中的近似等效项。

GDI 文本调用 说明 DirectWrite等效项
AddFontMemResourceEx 向系统字体表添加嵌入的字体。 CreateCustomFontFileReference + CreateCustomFontCollection
AddFontResource 将字体资源添加到系统字体表。 没有等效项。 AddFontResource 将添加到系统字体集合作为 GDI 字体安装步骤的一部分。 DirectWrite预先填充系统字体集合并自动监视其更新,因此无需安装。
AddFontResourceEx 向系统字体表添加专用字体或不可枚举字体。 同上
CreateFont 创建逻辑字体。 应用程序可以指定一组字体属性,而不是逻辑字体, (例如系列名称、粗细、样式、拉伸和大小) 来创建 IDWriteTextFormat。 只有需要枚举字体的应用才能通过 IDWriteFontCollection 访问 IDWriteFont
CreateFontIndirect 从 结构创建逻辑字体。 同上
CreateFontIndirectEx 从 结构创建逻辑字体。 同上
DrawText 在矩形中绘制带格式的文本。 IDWriteTextLayout::D raw
DrawTextEx 在矩形中绘制带格式的文本。 IDWriteTextLayout::D raw
EnumFontFamExProc EnumFontFamiliesEx 一起用于处理字体的应用程序定义的回调函数。 IDWriteFontCollection 接口,通过 IDWriteFactory::GetSystemFontCollection
EnumFontFamiliesEx 枚举系统中具有某些特征的所有字体。 IDWriteFontCollection 接口,通过 IDWriteFactory::GetSystemFontCollection
ExtTextOut 绘制字符串。 IDWriteTextLayout::D rawIDWriteRenderBitmapTarget::D rawGlyphRun
GetAspectRatioFilterEx 获取纵横比筛选器的设置。 空值
GetCharABCWidths 从 TrueType 字体中获取连续字符的宽度。 IDWriteFontFace::GetDesignGlyphMetrics
GetCharABCWidthsFloat 从当前字体中获取连续字符的宽度。 IDWriteFontFace::GetDesignGlyphMetrics
GetCharABCWidthsI 从 TrueType 字体中获取连续字形索引或字形索引数组的宽度。 IDWriteFontFace::GetDesignGlyphMetrics
GetCharacterPlacement 获取有关字符串的信息。 IDWriteTextAnalyzer
GetCharWidth32 从当前字体中获取连续字符的宽度。 IDWriteFontFace::GetDesignGlyphMetricsIDWriteTextLayout::GetMetrics
GetCharWidthFloat 从当前字体中获取连续字符的小数部分宽度。 IDWriteFontFace::GetDesignGlyphMetricsIDWriteTextLayout::GetMetrics
GetCharWidthI 从当前字体中获取连续字形索引或字形索引数组的宽度。 IDWriteFontFace::GetDesignGlyphMetricsIDWriteTextLayout::GetMetrics
GetFontData 获取 TrueType 字体的指标数据。 IDWriteFontFace::TryGetFontTable
GetFontLanguageInfo 返回有关显示上下文的所选字体的信息。 空值
GetFontUnicodeRanges 指示字体支持哪些 Unicode 字符。 IDWriteFont::HasCharacter 的循环
GetGlyphIndices 将字符串转换为字形索引数组。 IDWriteFontFace::GetGlyphIndices
GetGlyphOutline 获取 TrueType 字体中的字符的轮廓或位图。 字形指标 -- IDWriteFontFace::GetDesignGlyphMetrics,实际大纲信息 --IDwriteFontFace::GetGlyphRunOutline,如果需要字形位图, IDWriteRenderBitmapRenderTarget::D rawGlyphRun
GetKerningPairs 获取字体的字符字距调整对。 允许通过布局的版式属性进行字距调整 (DirectWrite进行字距调整,因此没有方法可) 返回此信息。
GetOutlineTextMetrics 获取 TrueType 字体的文本指标。 IDWriteFontFace::GetMetrics
GetRasterizerCaps 指示是否安装了 TrueType 字体。 (TrueType 字体默认安装在 Windows Vista 和 Windows 7 上。)
GetTabbedTextExtent 计算字符串(包括制表符)的宽度和高度。 IDWriteTextLayout::GetMetrics
GetTextAlign 获取设备上下文的文本对齐设置。 IDWriteTextFormat::GetTextAlignment
GetTextCharacterExtra 获取设备上下文的当前字符间间距。 空值
GetTextColor 获取设备上下文的文本颜色。 不适用。 (DirectWrite独立于渲染,因此不知道颜色。应用程序需要自行跟踪它。)
GetTextExtentExPoint 获取字符串中将容纳在空格中的字符数。 IDWriteTextLayout::GetMetrics
GetTextExtentExPointI 获取将容纳在空间中的字形索引数。 IDWriteTextLayout::GetMetrics
GetTextExtentPoint32 计算文本字符串的宽度和高度。 IDWriteTextLayout::GetMetrics
GetTextExtentPointI 计算字形索引数组的宽度和高度。 IDWriteTextLayout::GetMetrics
GetTextFace 获取在设备上下文中选择的字体的名称。 IDWriteFont::GetFaceNames (返回所有名称)
GetTextMetrics 使用字体的指标填充缓冲区。 IDWriteFontFace::GetMetrics
PolyTextOut 在设备上下文中使用字体和文本颜色绘制多个字符串。 不适用;创建多个布局对象
RemoveFontMemResourceEx 从系统字体表中删除其源嵌入文档中的字体。 关联对象的 IUnknown::Release
RemoveFontResource 从系统字体表中删除文件中的字体 空值
RemoveFontResourceEx 从系统字体表中删除专用字体或不可枚举字体。 空值
SetMapperFlags 更改用于将逻辑字体映射到物理字体的算法。 空值
SetTextAlign 设置设备上下文的文本对齐标志。 IDWriteTextFormat::SetTextAlignment
SetTextCharacterExtra 设置字符间间距。 空值
SetTextColor 设置设备上下文的文本颜色。 应用程序必须负责在其中一个 Draw 调用中指定颜色。
SetTextJustification 指定系统应向字符串中的分隔符添加的空间量。 不适用。 此版本不支持理由和字符间距。
TabbedTextOut 在某个位置写入字符串,将选项卡展开为指定值。 IDWriteTextLayout::D raw
TextOut 在某个位置写入字符串 IDWriteTextLayout::D raw