如何获取 GDI HFONT 的行高?
我正在向使用 MFC 构建并使用普通旧 GDI 的旧应用程序添加 SVG 导出支持。由于 SVG 1.1 不支持文本换行,我不得不手动执行此操作。
该应用程序为我提供了一个 CFont
实例(其中包含一个 HFONT
)。我可以使用 CFont::GetTextExtentPoint() 计算一段文本的宽度,但我还没有找到如何获取字体的行高。
如何获取字体的行高? 或者 CFont::GetTextExtentPoint() 是否始终返回 Y 坐标中的行高(而不是文本紧密配合边框的实际高度)?
I'm adding SVG export support to an old application built with MFC and using plain old GDI. As SVG 1.1 doesn't support text wrapping, I am forced to do this manually.
The application provides me with a CFont
instance (which contains an HFONT
). I can calculate the width of a piece of text using CFont::GetTextExtentPoint()
, but I haven't found out how to obtain the line height of a font yet.
How can I obtain the line height of my font?
Or does CFont::GetTextExtentPoint()
always return the line height in the Y coordinate (instead the actual height of the text's tight-fitting bounding box)?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我想我有一个可能的答案:
这有点麻烦,所以如果有一个更短、更明显的解决方案(或者如果有人可以确认
CFont::GetTextExtentPoint()
为我提供了实际的行高) ,我还是很高兴听到它;)I think I have a possible answer:
It's a bit cumbersome, so if there's a shorter, more obvious solution (or if anyone can confirm that
CFont::GetTextExtentPoint()
provides me with the actual line height), I'd be happy to hear it still ;)请参阅我在此问题中给出的答案。问题是关于文本宽度,但您也可以获得文本高度。
See the answer I gave in this question. The question's about the text width, but you can get the text height as well.