ScriptPositionSingleGlyph 函数 (usp10.h)

使用字体中提供的用于 OpenType 处理的指定功能,使用单个调整定位单个字形。 大多数情况下,应用程序使用此函数在线条的开头或末尾以光学方式对齐字形。

语法

HRESULT ScriptPositionSingleGlyph(
  [in, optional] HDC             hdc,
  [in, out]      SCRIPT_CACHE    *psc,
  [in, optional] SCRIPT_ANALYSIS *psa,
  [in]           OPENTYPE_TAG    tagScript,
  [in]           OPENTYPE_TAG    tagLangSys,
  [in]           OPENTYPE_TAG    tagFeature,
  [in]           LONG            lParameter,
  [in]           WORD            wGlyphId,
  [in]           int             iAdvance,
  [in]           GOFFSET         GOffset,
  [out]          int             *piOutAdvance,
  [out]          GOFFSET         *pOutGoffset
);

参数

[in, optional] hdc

设备上下文的句柄。 有关详细信息,请参阅 缓存

[in, out] psc

指向标识脚本缓存 的SCRIPT_CACHE 结构的指针。

[in, optional] psa

指向从先前调用 ScriptItemizeOpenType 获取的SCRIPT_ANALYSIS结构的指针。 此结构标识整形引擎,以便可以检索前向宽度。

或者,应用程序可以将此参数设置为 NULL 以检索未筛选的结果。

[in] tagScript

定义要整形的脚本标记的 OPENTYPE_TAG 结构。

[in] tagLangSys

定义要塑造的语言标记的 OPENTYPE_TAG 结构。

[in] tagFeature

定义特征标记的 OPENTYPE_TAG 结构,用于塑造备用字形。

[in] lParameter

一个标志,指定是否应将单个替换应用于 wGlyphId 中指定的标识符。 应用程序将此参数设置为 1,以将单个替换功能应用于标识符。 如果函数不应应用该功能,则应用程序会将 参数设置为 0。

[in] wGlyphId

正在塑造的原始字形的标识符。

[in] iAdvance

原始字形前移宽度。

[in] GOffset

原始字形偏移量。 通常,此值是 ScriptPlaceOpenTypeScriptPlace 的输出。

[out] piOutAdvance

指向此函数检索为备用字形调整的新前进宽度的位置的指针。

[out] pOutGoffset

指向此函数检索为备用字形调整的新字形偏移量的位置的指针。

返回值

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

注解

此函数通过调整给定字形的前进宽度和/或偏移量来定位单个字形。 函数假定字体只需调整一次。

此函数的典型用途是稍微调整边距,以解释某些字符造成的视觉印象。 例如,在拉丁语脚本中,在行的开头,通常对初始大写 ((如“T”或“O”) 字形左侧没有垂直线)进行轻微调整。 虽然这样做会打破严格的线性边距,但眼睛认为边距更均匀。

以下示例演示了这种效果。 第一个示例显示严格对齐:接下来的两个示例显示向左调整初始“T”。 调整分别为 1 个像素和 2 个像素。 右侧的放大图像显示“T”在每一个连续的情况下如何稍微推入左侧边距。

显示相同文本块三次的插图,其中每个文本块的放大显示对齐方式略有不同
重要从Windows 8开始:若要保持在 Windows 7 上运行的功能,使用 Uniscribe 的模块必须在其库列表中指定 gdi32.lib 之前的 Usp10.lib。
 

要求

要求
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 [仅限桌面应用]
目标平台 Windows
标头 usp10.h
Library Usp10.lib
DLL Usp10.dll
可再发行组件 在 Windows XP 上 Usp10.dll 版本 1.600 或更高版本

另请参阅

缓存

OPENTYPE_TAG

SCRIPT_ANALYSIS

SCRIPT_CACHE

ScriptItemizeOpenType

Uniscribe

Uniscribe 函数