假设您有两个或多个脚本中包含文本的字符串.当您使用像TextOut这样的GDI函数时,(现代版本)
Windows将执行“字体链接”.也就是说,GDI将使用您选择的字体绘制它所能用的内容,并以自动选择的适当字体绘制其余字体.例如,如果您的部分文字是英文(使用罗马字母),部分文字是中文(使用CJK字符),并且您选择了Arial,则英文部分将以Arial绘制,中文部分将使用用另一种具有CJK字形的字体绘制.
我的问题是,有没有办法确定TextOut将为字体链接选择(或选择)哪些字体?
我必须使用低级Uniscribe API绘制一些文本,该API不执行自动字体链接.我已经实现了自己的字体链接,但有时我的算法会选择与TextOut不同的字体用于相同的文本.我试图更好地理解Windows算法,但我并不擅长在视觉上识别字体(特别是在不熟悉的脚本中).
该字体由注册表项选择.在
this article.引用相关部分时有详细描述:
If font linking is enabled on your device,you can examine the registry by enumerating the subkeys of the registry key at HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink to determine the mappings of linked fonts to base fonts. You can add links by using Regedit to create additional subkeys.