如果我使用Direct3D的DrawText,其行为类似于GDI对应物,并且我启用了DT_WORDBREAK
格式化标记,它会在出现情况时剪切撇号上的文本,这会使许多标题和文本显示看起来像一团糟。例如,它将显示为:
The Horseman' 先生
应该说:
在
无头骑士的
头
考虑到字体处理函数的限制性质似乎不太可能,但有没有任何方法来指定它,以便它只在白色空间上剪切文本或者什么时候完全没有什么可以做?
答案 0 :(得分:1)
我之前已经遇到过这种情况,唯一的解决方案就是编写自己的自动换行器,使用DT_CALCRECT来测量给定字符串的宽度。这很烦人,而且很糟糕,但我从未见过其他选择。
答案 1 :(得分:1)
您可以借助GetTextExtentPoint32功能手动换行。
答案 2 :(得分:0)
我不这么认为(我可能错了)。但是您可以在宽度上设置“虚拟”限制。计算行长度(char_count * font_width)并自己跳转。您甚至可以添加特殊字符“\ n”,以插入您自己的跳转...