我想wordwrap文本块显示窗口,否则会太长。我使用的字体不是固定宽度的字体,因此GetSystemMetrics不会为我的文本返回准确的值。Wordwrap Win32
使用static
窗口不是一个选项,因为static
窗口不告诉我一个重要的信息:在wordwrapping之后绘制的文本的高度。
任何想法?
Billy3
我想wordwrap文本块显示窗口,否则会太长。我使用的字体不是固定宽度的字体,因此GetSystemMetrics不会为我的文本返回准确的值。Wordwrap Win32
使用static
窗口不是一个选项,因为static
窗口不告诉我一个重要的信息:在wordwrapping之后绘制的文本的高度。
任何想法?
Billy3
DrawTextEx()
将做你想要的一切,如果整个文本要显示在一个单一的字体需要。
如果你需要混合字体,你必须亲自完成工作。在这种情况下,您需要查看诸如GetTextMetrics()
(而不是GetSystemMetrics()
)和GetTextExtentExPoint32()
之类的API来计算每次运行的位置和大小。
如果您需要处理复杂的脚本(例如,从右到左的语言和脚本,其中字母根据上下文而改变形状),则需要Uniscribe。警告:Uniscribe功能强大但非常低。可能需要花费很多工作才能将其封装到更高级别的界面中。如果您需要复杂的脚本处理,则最好使用浏览器控件。
由于两个答案基本相同,我检查了之前发布的答案。 – 2009-05-02 14:58:12