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
原始字形偏移量。 通常,此值是 ScriptPlaceOpenType 或 ScriptPlace 的输出。
[out] piOutAdvance
指向此函数检索为备用字形调整的新前进宽度的位置的指针。
[out] pOutGoffset
指向此函数检索为备用字形调整的新字形偏移量的位置的指针。
返回值
如果成功,则返回 0。 如果函数不成功,则返回非零 HRESULT 值。 应用程序可以使用 SUCCEEDED 和 FAILED 宏测试返回值。
注解
此函数通过调整给定字形的前进宽度和/或偏移量来定位单个字形。 函数假定字体只需调整一次。
此函数的典型用途是稍微调整边距,以解释某些字符造成的视觉印象。 例如,在拉丁语脚本中,在行的开头,通常对初始大写 ((如“T”或“O”) 字形左侧没有垂直线)进行轻微调整。 虽然这样做会打破严格的线性边距,但眼睛认为边距更均匀。
以下示例演示了这种效果。 第一个示例显示严格对齐:接下来的两个示例显示向左调整初始“T”。 调整分别为 1 个像素和 2 个像素。 右侧的放大图像显示“T”在每一个连续的情况下如何稍微推入左侧边距。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 [仅限桌面应用] |
目标平台 | Windows |
标头 | usp10.h |
Library | Usp10.lib |
DLL | Usp10.dll |
可再发行组件 | 在 Windows XP 上 Usp10.dll 版本 1.600 或更高版本 |