Что делает TextFormatFlags.Internal (он же DT_INTERNAL) при использовании DrawText?

При использовании TextRenderer.DrawText() что на самом деле делает установка флага TextFormatFlags.Internal?

Эквивалентно, что делает установка флага DT_INTERNAL для функции DrawTextEx() Win32?

Более того, когда я должен установить этот флаг и когда я не должен устанавливать его?

Документация гласит: "Использует системный шрифт для вычисления текстовых метрик", но я не совсем уверен, что это значит. Я провел некоторое ограниченное тестирование, и установка флага, похоже, меняет способ отображения шрифта при использовании шрифта небольшого размера, но, похоже, не имеет значения при использовании шрифта большого размера.

1 ответ

Решение

Это означает, что независимо от того, какой шрифт вы фактически используете, он выполняет свои вычисления так, как если бы вы использовали системный шрифт вместо этого. Например, предположим, что ваш системный шрифт это 12 пунктов. Если вы используете 30-точечный шрифт вместе с флагом DT_INTERNAL, каждая строка будет достаточно продвинутой для системного (12-точечного) шрифта, а не 30-точечного шрифта, поэтому каждая строка текста будет перекрываться с предыдущей.

"ВНУТРЕННИЙ" в основном означает "только для внутреннего использования Windows" - я уверен, что никогда не использовал этот флаг ни в одном реальном коде.

Другие вопросы по тегам