我想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