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 值。 应用程序可以使用 SUCCEEDEDFAILED 宏测试返回值。

注解

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

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

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

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

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

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

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

重要从 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 函数