代码之家  ›  专栏  ›  技术社区  ›  Adrian McCarthy

是否可以确定Windows为字体链接选择的字体?

  •  8
  • Adrian McCarthy  · 技术社区  · 16 年前

    假设您有一个字符串,其中包含两个或多个脚本中的文本。当你使用gdi函数时 TextOut ,(的现代版本)Windows将执行“字体链接”。也就是说,GDI将用您选择的字体绘制它可以绘制的内容,并用它自动选择的适当字体绘制其余内容。例如,如果部分文本是英文(使用罗马字母),部分文本是中文(使用CJK字符),并且您选择了Arial,则英文部分将以Arial绘制,而中文部分将以另一种具有CJK字形的字体绘制。

    我的问题是,有没有办法确定哪种字体 文本输出 是否将选择(或确实选择)字体链接?

    我必须用低级的uniscribe API绘制一些文本,它不做自动字体链接。我已经实现了自己的字体链接,但有时我的算法选择的字体与 文本输出 对同一文本执行。我试图更好地理解Windows算法,但我不太擅长识别可视字体(尤其是在不熟悉的脚本中)。

    1 回复  |  直到 16 年前
        1
  •  2
  •   Hans Passant    16 年前

    字体由注册表项选择。它在 this article. 引用相关部分:

    如果在您的 设备,您可以检查注册表 通过枚举 注册表项位于 hkey_本地计算机\软件\microsoft\windows nt\currentversion\fontlink\systemlink 确定链接的映射 基于字体的字体。您可以添加链接 通过使用regedit创建附加的 子键。