1

TextRenderer.DrawText() を使用する場合、TextFormatFlags.Internal フラグを設定すると実際に何が行われますか?

同様に、DT_INTERNAL フラグを Win32 の DrawTextEx() 関数に設定するとどうなるでしょうか?

さらに言えば、いつそのフラグを設定する必要があり、いつ設定しないでください。

ドキュメントには、「システム フォントを使用してテキスト メトリックを計算する」と記載されていますが、それが何を意味するのか完全にはわかりません。いくつかの限定的なテストを行ったところ、フラグを設定すると、小さなフォント サイズを使用する場合のフォントのレンダリング方法が変わるように見えますが、大きなフォント サイズを使用する場合は違いがないようです。

4

1 に答える 1

1

つまり、実際に使用しているフォントに関係なく、代わりにシステム フォントを使用しているかのように計算が行われます。たとえば、システム フォントが 12 ポイントであるとします。DT_INTERNAL フラグと共に 30 ポイントのフォントを使用している場合、各行は、30 ポイントのフォントではなく、(12 ポイント) システム フォントに対してのみ十分に進められるため、テキストの各行は前の行と重複します。

「INTERNAL」は基本的に「Windows の内部使用のみ」を意味します。実際のコードでこのフラグを使用したことがないことは確かです。

于 2010-04-26T16:43:32.113 に答える