2009-05-02 7 views
0

私はそうでなければ長すぎるであろうウィンドウに表示するためにテキストのブロックをワードラップしようとしています。使用しているフォントは固定幅フォントではないので、GetSystemMetricsはテキストの正確な値を返しません。ワードラップWin32

staticウィンドウを使用すると、ここにはオプションがありません。なぜなら、staticウィンドウで重要な情報が1つもわからないからです。ワードラッピング後に描画されるテキストの高さです。

アイデア?

Billy3

+0

2つの回答が本質的に同じだったので、私は前の投稿をチェックしました。 –

答えて

4

Win32 APIコールDrawtextExを確認してください。 DT_CALCRECTオプションを渡して、長方形を計算することをWindowsに伝える必要があります。

+0

ありがとうございました:) –

2

あなたはDT _ CALCRECTフラグを設定してDrawText() API関数を使用することができます。まず、HDCの正しいフォントを選択する必要があります。

+0

ありがとうございました:) –

1

は、テキスト全体を1つのフォントで表示する場合に必要なすべてを行います。

フォントを混ぜる必要がある場合は、自分で作業する必要があります。その場合は、GetTextMetrics()GetSystemMetrics()ではない)とGetTextExtentExPoint32()のようなAPIを見て、それぞれの実行の位置とサイズを調べるとよいでしょう。

複雑なスクリプト(文脈によっては文字の形が変わる右から左の言語やスクリプトなど)を処理する必要がある場合は、Uniscribeが必要です。注意:Uniscribeは強力ですが、非常に低いレベルです。より高いレベルのインタフェースでそれを包むためには、多くの作業が必要です。複雑なスクリプト処理が必要な場合は、ブラウザコントロールを使用する方がよい場合があります。