【问题标题】:How can I determine if a HFONT is a raster or a vector font?如何确定 HFONT 是光栅字体还是矢量字体?
【发布时间】:2021-12-30 17:29:56
【问题描述】:

我正在使用CreateFont()OUT_DEFAULT_PRECIS 创建一个逻辑字体。现在如何检查生成的 HFONT Windows 为我分配的是光栅字体还是矢量字体?

我的幼稚方法是尝试使用GetGlyphOutline() 获得字形轮廓,如果成功,它必须是矢量字体,否则是光栅字体。

但我想问是否有更好的版本来检查HFONT 句柄并判断它是光栅字体还是矢量字体。

【问题讨论】:

  • 您是否查看了调用GetObject 返回的LOGFONT,看看是否有任何东西可以让您收集这些信息?
  • @IInspectable: 貌似这个不能解决问题。 LOGFONT 中唯一可以在这里提供帮助的 AFAICS 成员是 lfOutPrecision,但无论 HFONT 是光栅字体还是矢量字体,它似乎总是为 0。

标签: winapi gdi


【解决方案1】:

通过SelectObject()HFONT 选择为HDC,然后将HDC 传递给GetTextMetrics()。生成的 TEXTMETRIC 结构有一个 tmPitchAndFamily 字段,该字段为矢量字体启用了一个 TMPF_VECTOR 标志。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-11
    • 1970-01-01
    • 2018-06-12
    相关资源
    最近更新 更多