scriptLayout 函数 (usp10.h)

将运行 嵌入级别的 数组转换为视觉到逻辑位置和/或逻辑到视觉位置的映射。

语法

HRESULT ScriptLayout(
  [in]            int        cRuns,
  [in]            const BYTE *pbLevel,
  [out, optional] int        *piVisualToLogical,
  [out, optional] int        *piLogicalToVisual
);

参数

[in] cRuns

要处理的运行数。

[in] pbLevel

指向数组的指针,长度由 cRuns 指示,包含运行嵌入级别。 必须包括行上所有运行的嵌入级别,并按逻辑顺序排序。 有关详细信息,请参见“备注”部分。

[out, optional] piVisualToLogical

指向一个数组的指针,该数组长度由 cRuns 指示,在此数组中,此函数检索按可视顺序重新排序的运行嵌入级别。 第一个数组元素表示要在最左侧显示的运行,后续条目应从左到右显示进度。 如果没有输出,则函数将此参数设置为 NULL 。

[out, optional] piLogicalToVisual

指向数组的指针,该数组长度由 cRuns 指示,此函数在其中检索可视运行位置。 第一个数组元素是应显示第一个逻辑运行的相对可视位置,最左侧的显示位置为 0。 如果没有输出,则函数将此参数设置为 NULL 。

返回值

如果成功,则返回 0。 如果函数不成功,则返回非零 HRESULT 值。 应用程序可以使用 SUCCEEDED 和 FAILED 宏测试返回值。

注解

有关通常调用此函数的上下文的讨论,请参阅 使用 Uniscribe 显示文本 。

此函数仅处理与单行文本相关的数据。

运行嵌入级别在 Unicode 双向算法中定义。 它们描述运行的方向、嵌入它的任何运行的方向以及段落的方向。 调用此函数不需要其他输入。 有关详细信息,请参阅 Unicode。

下表列出了预定义的嵌入级别。 应用程序可以根据需要添加级别。

级别 含义
0 在从左到右的段落中从左到右运行。
1 在从左到右段落中嵌入的从左到右运行。 或者,在从右到左的段落中,从右到左运行,而不是嵌入在另一个运行中。
2 嵌入在类型 1 的从右到左运行中的从左到右运行。
3 嵌入在类型 2 的从左到右运行中的从右到左运行。
 

“逻辑位置”是指运行相对于其他运行的位置。 它是后备存储中的位置,对应于用户大声朗读文本的顺序。 运行的“视觉位置”是指运行在行上直观显示的方式,同时考虑到运行可以具有的可能方向。

应用程序可以调用此函数设置 piLogicalToVisual 或 piVisualToLogical,也可以调用这两者。

重要从 Windows 8 开始:若要保持在 Windows 7 上运行的能力,使用 Uniscribe 的模块必须在其库列表中指定 gdi32.lib 之前的 Usp10.lib。
 

要求

要求 值
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 usp10.h
Library Usp10.lib
DLL Usp10.dll
可再发行组件 Windows Me/98/95 上的 Internet Explorer 5 或更高版本

另请参阅

使用 Uniscribe 显示文本

Uniscribe

Uniscribe 函数