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

时间:2010-03-11 18:04:38

标签: winapi gdi textout font-linking

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

我的问题是,有没有办法确定哪些字体TextOut会为字体链接选择(或选择)?

我必须使用低级Uniscribe API绘制一些文本,该API不执行自动字体链接。我已经实现了自己的字体链接,但有时候我的算法会为TextOut选择与同一文本不同的字体。我试图更好地理解Windows算法,但我并不擅长识别字体(特别是在不熟悉的脚本中)。

1 个答案:

答案 0 :(得分:2)

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

中有详细描述
  

如果您的字体链接已启用   设备,您可以检查注册表   通过枚举的子键   注册表项   HKEY_LOCAL_MACHINE \ SOFTWARE \微软\窗户   NT \ CURRENTVERSION \ FontLink \ SystemLink   确定链接的映射   字体基础字体。您可以添加链接   通过使用Regedit创建其他   子项。