【发布时间】:2023-03-08 10:50:01
【问题描述】:
我现在正在将项目的渲染引擎从 GDI 转换为 D2D。 GDI 使用“CreateFontIndirect”分配字体大小“-13”,字体系列“Segeo UI”。 D2D 使用“CreateTextFormat”分配字体大小“13”,字体系列“Segeo UI”。效果如下图:
在GDI的情况下,系统在“Segeo UI”中没有找到汉字,它会在regedit“SystemLink”中找到中文字体,在我的机器上是“YaHei”。但是在D2D的情况下,系统没有找到“雅黑”,它会选择绘制哪种中文字体,它是如何工作的?
【问题讨论】:
-
对不起,不,有什么方法可以将 SystemLink 转换为后备?我现在正在做一个 GDI 项目。 SystemLink 已经存在,并且在不同的机器上,有不同的 SystemLink 列表。我不能使用后备来自定义我的选择字体列表。
-
您说“我现在正在从事 GDI 项目”,但您的问题是关于 Direct2D。 Direct2D 不是 GDI,它使用另一种机制。
-
我认为@zhufachang 要求的是使用 DirectWrite 实现相同的后备行为,即 SystemLink 用于为 GDI 提供的行为。没有办法在它们之间自动转换,你必须自己发明一些东西。例如,您可以读取 SystemLink 数据,并在可能的情况下使用它填充您的自定义后备实例。
-
@bunglehead 好的,谢谢
标签: direct2d directwrite