Что делает TextFormatFlags.Internal (a.k.a. DT_INTERNAL) при использовании DrawText? - PullRequest
1 голос
/ 25 апреля 2010

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

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

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

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

1 Ответ

1 голос
/ 26 апреля 2010

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...