使用 ScriptString 函数

对于处理未格式化文本的应用程序,Uniscribe 提供 ScriptString* 函数。 这些函数类似于 ExtTextOutDrawTextGetTextExtent,但它们提供完整的复杂脚本支持,包括插入点放置。 这些函数与其他 Uniscribe 函数类似,但专为纯文本处理更简单的要求而定制。

下表详细介绍 了 ScriptString* 函数以及其他 Uniscribe 函数中的任何对应函数。

函数 说明
ScriptStringAnalyse 分析纯文本。 此函数对应于以下函数:
ScriptItemize
ScriptShape
ScriptPlace
ScriptBreak
ScriptGetCMap
ScriptJustify
ScriptLayout
ScriptStringCPtoX 检索字符位置的 x 坐标。 此函数对应于 ScriptCPtoX
ScriptStringFree 释放 SCRIPT_STRING_ANALYSIS 结构。
ScriptStringGetLogicalWidths 将视觉对象宽度转换为逻辑宽度。 此函数对应于 ScriptGetLogicalWidths
ScriptStringGetOrder 以类似于 GetCharacterPlacement 的方式映射字符字形位置,仅供旧版使用。 此函数不适用于每个码位生成多个字形的脚本。
ScriptStringOut 显示纯文本。 此函数对应于 ScriptTextOut
ScriptString_pcOutChars 返回指向剪裁的纯文本字符串长度的指针。
ScriptString_pLogAttr 返回指向已分析纯文本字符串的逻辑属性缓冲区的指针。
ScriptString_pSize 返回指向所分析纯文本字符串的大小 (宽度和高度) 的指针。
ScriptStringValidate 标识在给定脚本中无效的码位序列。 此函数不同于 ScriptGetCMap,后者标识字体中不存在的码位。
ScriptStringXtoCP 将 x 坐标转换为字符位置。 此函数对应于 ScriptXtoCP

若要仅显示纯文本而不进行任何修改,应用程序应调用 ScriptStringAnalyseScriptStringOutScriptStringFree。 其他函数用于在显示之前修改纯文本。

使用 Uniscribe