3

我有一些旧代码要移植到地铁。旧代码使用 GDI 函数GetFontData从标签被传递给它的表中获取字体数据。我打算用 . 替换它IDWriteFontFace::TryGetFontTable。为此,我必须创建一个 IDWriteFontFace 对象,该对象需要与它所代表的字体相对应的字体文件的路径。但我不明白的是,在哪里可以GetFontData找出应该从谁的表中获取数据的字体文件?它是从传递给它的设备上下文中这样做的吗?

4

2 回答 2

2

字体是当前在设备上下文中选择的字体。您可以使用对象类型为 OBJ_FONT的GetCurrentObject来检索它。然后,您可以安全地将返回的 HGDIOBJ 转换为 HFONT。

至于检索字体文件名,这并不容易。看到那个问题

于 2013-10-10T11:09:15.783 回答
0

在设备上下文中总是选择一些字体(我说总是因为有默认字体)。因此GetFontData根据HDC hdc参数返回该字体。

正如曼努埃尔提到GetFontData的,类似于(HFONT)(GetCurrentObject(hdc, OBJ_FONT))

于 2013-10-10T12:49:43.200 回答