ScriptJustify 函数 (usp10.h)
创建一个高级宽度表,以便在传递到 ScriptTextOut 函数时允许文本对齐。
语法
HRESULT ScriptJustify(
[in] const SCRIPT_VISATTR *psva,
[in] const int *piAdvance,
[in] int cGlyphs,
[in] int iDx,
[in] int iMinKashida,
[out] int *piJustify
);
参数
[in] psva
指向数组的指针,长度由 cGlyphs 指示,包含 SCRIPT_VISATTR 结构。 每个结构都包含要处理的行中字形的可视属性。
[in] piAdvance
指向前一次调用 ScriptPlace 时获取的由 cGlyphs 指示的长度的前进宽度数组的指针。
[in] cGlyphs
psva 和 piAdvance 指示的数组的字形计数。 此参数还指示输出参数 piJustify 的字形计数。
[in] iDx
所需更改的宽度(以像素为单位),即减小的增大。
[in] iMinKashida
要生成的 kashida 字形的最小宽度。
[out] piJustify
指向缓冲区的指针,此函数在其中检索由 cGlyphs 指示的长度的数组,其中包含对齐的前进宽度。 对齐宽度有时称为“单元格宽度”,以将它们与不合理的前进宽度区分开来。
返回值
如果成功,则返回 0。 如果函数不成功,则返回非零 HRESULT 值。 应用程序可以使用 SUCCEEDED 和 FAILED 宏测试返回值。
注解
有关通常调用此函数的上下文的讨论,请参阅 使用 Uniscribe 显示文本 。
此函数提供多语言理由的简单实现。 它确定在行上每个字形位置要做出的调整量。 它解释调用 ScriptShape 生成的SCRIPT_VISATTR数组,将 kashida 作为最高优先级。 如果没有 kashida 点可用,则函数使用字间间距。 如果没有可用的字间点,则使用字符间间距。
ScriptJustify 创建一个对齐数组,其中包含每个字形的更新前向宽度。 增加字形的前进宽度时,将在字形右侧呈现额外的宽度,并带有空白,或者,对于阿拉伯语文本,则呈现为 kashida。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | usp10.h |
Library | Usp10.lib |
DLL | Usp10.dll |
可再发行组件 | Windows Me/98/95 上的 Internet Explorer 5 或更高版本 |