【问题标题】:Win32 DrawText line heightWin32 DrawText 行高
【发布时间】:2010-12-18 01:13:59
【问题描述】:

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

我只会给DrawText 打两次电话(每行一次),但我必须自己进行自动换行。

还有其他方法吗?

谢谢

【问题讨论】:

    标签: text winapi gdi


    【解决方案1】:

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

    【讨论】:

    • 正确,GDI 会根据字体度量自动分隔行。除了创建字体的修改副本之外,我从未见过任何可以让您修改 DrawText 使用的间距的东西。
    【解决方案2】:

    一种可能性是将文本放入禁用的 Rich Edit 控件中。我认为这可以让您对格式有很大的控制权。

    如果您确实编写了自己的自动换行,您可能希望使用GetTextExtentExPoint() 来衡量每行可以容纳多少。

    【讨论】:

      猜你喜欢
      • 2011-12-26
      • 2011-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-03
      • 1970-01-01
      • 1970-01-01
      • 2014-06-05
      相关资源
      最近更新 更多