SCRIPT_ANALYSIS结构(usp10.h)

包含 Unicode 字符串的一部分,即“item”。

Syntax

typedef struct tag_SCRIPT_ANALYSIS {
  WORD         eScript : 10;
  WORD         fRTL : 1;
  WORD         fLayoutRTL : 1;
  WORD         fLinkBefore : 1;
  WORD         fLinkAfter : 1;
  WORD         fLogicalOrder : 1;
  WORD         fNoGlyphIndex : 1;
  SCRIPT_STATE s;
} SCRIPT_ANALYSIS;

Members

eScript

标识 Uniscribe 在为项调用 ScriptShapeScriptPlaceScriptTextOut 函数时使用的引擎的不透明值。 此成员的值未定义,应用程序不应依赖于其值从一个版本到另一个版本相同。 应用程序可以通过调用 ScriptGetProperties 来获取 eScript 的属性。

若要禁用整形,应用程序应将此成员设置为SCRIPT_UNDEFINED。

fRTL

指示呈现方向的值。 下表中定义了可能的值。 对于从左到右运行中的数字,此成员设置为 TRUE ,因为数字始终从左到右显示,对于从右到左的运行中的数字,则为 FALSE 。 此成员的值通常与 Unicode 嵌入级别的奇偶校验相同,但如果 GetCharacterPlacement 旧版支持重写,它可能会有所不同。

价值 Meaning
TRUE
使用从右到左的呈现方向。
FALSE
使用从左到右的呈现方向。

fLayoutRTL

指示数字的布局方向的值。 下表中定义了可能的值。 此成员通常与在从右到左的运行中为数字分配给 fRTL 的值相同。

价值 Meaning
TRUE
将数字放在从右到左的运行中,因为它作为从右到左序列的一部分进行读取。
FALSE
将数字放在从左到右的运行中,因为它作为从左到右序列的一部分进行读取。

fLinkBefore

值,指示整形引擎是否将项的第一个字符形状,就好像它与上一个字符联接一样。 下表中定义了可能的值。 此成员由 ScriptItemize 设置。 应用程序可以在调用 ScriptShape 之前重写该值。

价值 Meaning
TRUE
通过与上一个字符链接来调整第一个字符。
FALSE
不要通过与上一个字符链接来调整第一个字符。

fLinkAfter

值,该值指示整形引擎是否将项目的最后一个字符塑造为项目的最后一个字符,就像它与后续字符联接一样。 下表中定义了可能的值。 此成员由 ScriptItemize 设置。 应用程序可以在调用 ScriptItemize 之前重写该值。

价值 Meaning
TRUE
通过链接到后续字符来调整最后一个字符。
FALSE
不要通过与后续字符链接来调整最后一个字符。

fLogicalOrder

指示整形引擎是否按逻辑顺序生成所有字形相关数组的值。 下表中定义了可能的值。 此成员由 ScriptItemize 设置为 FALSE。 应用程序可以在调用 ScriptShape 之前重写该值。

价值 Meaning
TRUE
按逻辑顺序生成所有字形相关的数组。
FALSE
按可视顺序生成所有字形相关的数组,第一个数组项对应于最左侧的字形。 此值为默认值。

fNoGlyphIndex

指示项的字形用法的值。 下表中定义了可能的值。 应用程序可以在输入到 ScriptShape 时将此成员设置为 TRUE,以禁用项的字形的使用。 此外, ScriptShape 为包含符号、无法识别和设备字体的硬件上下文将其设置为 TRUE

禁用字形的使用也会禁用复杂的脚本整形。 将此成员设置为 TRUE 可实现通过调用 GetTextExtentExPointExtTextOut 直接进行整形和放置。

价值 Meaning
TRUE
禁用对项使用字形。 此值用于位图、矢量和设备字体。
FALSE
启用项目字形的使用。 此值为默认值。

s

包含 Unicode 算法状态副本 的SCRIPT_STATE 结构。

注解

此结构由 ScriptItemizeScriptItemizeOpenType 填充,每个结构将 Unicode 字符串分解为可单独塑造的项。 两个函数都无法直接访问 SCRIPT_ANALYSIS 结构。 每个函数处理 SCRIPT_ITEM 结构的数组,每个结构都有一个定义 SCRIPT_ANALYSIS 结构的成员。

使用 ScriptItemizeOpenType 而不是 ScriptItemize 的应用程序还应使用 ScriptShapeOpenType 和 ScriptPlaceOpenType,而不是 ScriptShapeScriptPlace 有关详细信息,请参阅 “使用 Uniscribe 显示文本”。

要求

Requirement 价值
最低支持的客户端 Windows 2000 Professional [仅限桌面应用]
支持的最低服务器 Windows 2000 Server [仅限桌面应用]
Header usp10.h
可再发行组件 Internet Explorer 5 或更高版本(Windows Me/98/95)

另请参阅

SCRIPT_ITEM

SCRIPT_STATE

ScriptGetProperties

ScriptItemize

ScriptItemizeOpenType

ScriptPlace

ScriptPlaceOpenType

ScriptShape

ScriptShapeOpenType

ScriptTextOut

Uniscribe

Uniscribe 结构