2011-01-24 10 views
0

Direct3DのDrawTextをGDIのように動作させ、書式設定フラグDT_WORDBREAKを有効にすると、状況に応じてアポストロフィでテキストが切り詰められ、多くのタイトルとテキストが残されます混乱のように見える表示。 GDIとDirect3Dを使用した刺激的なテキストの折り返し


騎手の


の頭

それは言うべき

騎士を:例えば、それは次のように表示されます

Iフォント処理関数の制限的な性質を考慮しているとは思われませんが、それを指定する方法はありますか?白い空白のテキストだけをカットする方法や、何もできないことは絶対にありません。

+0

D3DXユーティリティライブラリ(ID3DXFont :: DrawText)からですか?コアD3DにDrawText関数があるとは思いません。しかし、Direct2Dはそうし、D2DのDrawTextはこの問題を持っていないようです。 –

答えて

0

私はそう思わない(私は間違っているかもしれない)。しかし、あなたは幅に "仮想"限界を設定することができます。行の長さ(char_count * font_width)を計算して、自分でジャンプしてください。

+1

'char_count * font_width'を使うことは、フォントが文字サイズが変わっていると考えると、とても良い解決策ではありません。 – Jengerer

+1

@Jengerer:あなたは正しいです、GetTextExtentPoint32のようなものを使うのが良いです。 –

+1

@codebolt:これは実際に問題を解決するための非常に役に立つ機能です。あなたが別の答えにその提案を投げることができるなら、私はそれが最も効率的な解決策であると思われるので、それを受け入れるでしょう。ありがとう! – Jengerer

1

私はこれまでに実行してきましたが、唯一の解決策は、DT_CALCRECTを使って幅を測定する独自のラッパーを作成することです指定された文字列のそれは迷惑で、それは吸うが、私は代替手段を見たことがない。

関連する問題