我有一些我希望移植到地铁的旧代码。旧代码使用GDI函数GetFontData
从正传递给它的表中获取字体数据。我计划用IDWriteFontFace::TryGetFontTable
替换它。为此,我必须创建一个IDWriteFontFace对象,该对象需要与其所代表的字体对应的字体文件的路径。但我不明白的是GetFontData
在哪里找出应从其表中获取数据的字体文件?它是从传递给它的设备上下文中这样做的吗?
答案 0 :(得分:2)
字体是当前在设备上下文中选择的字体。您可以使用对象类型为OBJ_FONT的GetCurrentObject来检索它。然后,您可以安全地将返回的HGDIOBJ投射到HFONT。
至于检索字体文件名,这并不容易。见that SO Question
答案 1 :(得分:0)
在设备上下文中总是选择一些字体(我总是说因为有默认字体)。因此GetFontData
会根据HDC hdc
参数返回该字体。
正如manuell提到的GetFontData
类似于(HFONT)(GetCurrentObject(hdc, OBJ_FONT))