GDI函数GetFontData如何知道哪种字体?

时间:2013-10-10 09:28:15

标签: winapi windows-store-apps gdi

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

2 个答案:

答案 0 :(得分:2)

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

至于检索字体文件名,这并不容易。见that SO Question

答案 1 :(得分:0)

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

正如manuell提到的GetFontData类似于(HFONT)(GetCurrentObject(hdc, OBJ_FONT))