Win32 DrawText行高

时间:2009-11-18 20:38:45

标签: text winapi gdi device-context

我正在调用Win32 DrawText函数将一些文本输出到设备上下文中。文本很长,很好地包装在第二行。问题是我需要减少线之间的空间(我猜减少线高?)。关于如何做到这一点的任何想法?

我只会打电话给DrawText两次(每行一次)但是我必须自己做自适应。

还有其他办法吗?

由于

2 个答案:

答案 0 :(得分:5)

自从我在Win32上处理这个问题已经有一段时间了,但我相信字体本身通过在字符下面定义空白来定义“预期”间距。 Drawtext使用这个完整的“高度来定位包装时的下一行。如果你想做一些与这个大小不一致的东西,我相信你将不得不做你自己的包装计算和多个DrawText()调用。

答案 1 :(得分:3)

一种可能性是将文本放入禁用的Rich Edit Control中。我认为这可以让你对格式化有很多控制。

如果您自己编写自己的自动换行,可能需要使用GetTextExtentExPoint()来衡量每行的适合度。