gpt4 book ai didi

mfc - 如何获得 GDI HFONT 的行高?

转载 作者:太空宇宙 更新时间:2023-11-04 05:33:08 29 4
gpt4 key购买 nike

我正在为使用 MFC 构建并使用普通旧 GDI 的旧应用程序添加 SVG 导出支持。由于 SVG 1.1 不支持文本换行,我不得不手动执行此操作。

该应用程序为我提供了一个CFont 实例(其中包含一个HFONT)。我可以使用 CFont::GetTextExtentPoint() 计算一段文本的宽度,但我还没有找到如何获取字体的行高。

如何获取字体的行高?还是 CFont::GetTextExtentPoint() 总是返回 Y 坐标中的行高(而不是文本的紧密边界框的实际高度)?

最佳答案

我想我有一个可能的答案:

CDC desktopDC;
desktopDC.Attach(::GetDC(0));
desktopDC.SelecTObject(&font);

::TEXTMETRIC metrics;
desktopDC.GetTextMetrics(&metrics);

int lineHeight = metrics.tmHeight + metrics.tmExternalLeading;

这有点麻烦,所以如果有更短、更明显的解决方案(或者如果有人可以确认 CFont::GetTextExtentPoint() 为我提供了实际的行高),我会很高兴仍然听到它;)

关于mfc - 如何获得 GDI HFONT 的行高?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1946070/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com