2011-05-24 43 views
0

我使用的渲染:: ID3DXFont DrawText的一些斜體部分字符沒有完全顯示。儘管我指定了DT_NOCLIP並且矩形足夠大,但通常,但不僅僅是文本的最後一個字符不是完全顯示,而是從右側刪除。爲什麼渲染斜體文字時的Direct X

什麼可以的原因以及如何解決它?有任何想法嗎?

回答

0

它可以是一個混淆的問題?也許這個矩形實際上不夠大?

你應該張貼一些代碼,雖然問題的屏幕截圖...

+0

我確定矩形足夠大。這裏是我深信: 我畫2個不同的文本翻譯成1個矩形,其中一人與其他DT_LEFT與DT_RIGHT對齊。它們之間有一定距離,意味着矩形足夠寬。然而,當它們中的任何一個是斜體的(左邊的或右邊的都不重要),斜體文本的一些字母(不一定是最後一個)是半顯示的,即它們的右邊部分沒有顯示。 我會嘗試提供一些截圖,但我不確定是否可以 – 2011-05-25 13:51:46

2

這是ID3DFont類常見的故障,它不是solventable(我知道的)。當字符具有不同的字符寬度和渲染寬度時,它並不計算真正的矩形區域,主要是在計算完整句子的總矩形區域時。 同樣罕見的字體(渲染矩形與其他字符重疊)也會被切斷。 其他故障包括:字距對 S,因爲它根本不關心他們。經典的AV示例將呈現爲中間有一個白色空間。

因此,最好的解決辦法是避免ID3DFont和代碼自己文本呈現,或使用像DirectWrite的其他替代品。

http://msdn.microsoft.com/en-us/library/dd368038%28v=vs.85%29.aspx