Вопрос

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

Поскольку я уже знаю среду, в которой будет установлено приложение, решение не обязательно должно быть скриптом или программой, для меня достаточно иметь шрифт во время разработки.

Для чего это стоит, это будет приложение ms-Access.

Это было полезно?

Решение

Я не думаю, что вам действительно нужен абсолютно узкий шрифт, так как это может быть какой-то символьный / служебный шрифт, который может не содержать настоящих символов. Конечно, в моей системе & # 8216; самый узкий & # 8217; Шрифт будет таким, который почти не содержит латинских символов, что делает ширину отображаемой строки почти нулевой!

Arial Narrow устанавливается Office, поэтому это может показаться разумным выбором для приложения Access. Если вам нужен более узкий вариант, я думаю, вам придется связать определенный шрифт самостоятельно.

Другие советы

Попробуйте перечислить все шрифты, измеряя "Быстрая коричневая лиса перепрыгнула через ленивую собаку" с каждым, а затем возьмите тот, который занимает меньше всего места.

Эта ссылка объясняет, как перечислять шрифты

Эта ссылка объясняет, как измерять строки

Не могу поверить, что об этом еще не говорилось: просто уменьшите объем текста на кнопках!

Если вам нужно поместить предложение в кнопку, вы делаете это неправильно . У вас должно быть одно или два слова, желательно с действием, которое будет выполнять пользователь (в отличие от OK / Cancel). При необходимости вы можете использовать диалоговое окно для более подробного описания того, что влечет за собой каждое действие.

Не говоря уже о том, что более узкий шрифт усложняет чтение текста, как бы там ни было.

Если я, я буду использовать Arial Narrow

Просто найдите приложение для просмотра шрифтов, такое как AMP Font Viewer. Они часто предлагают возможность перечисления всех установленных шрифтов, отображаемых в произвольной строке с самим шрифтом.

В моей системе я вижу много шрифтов (нестандартных), более узких, чем Arial Narrow. Как хорошо известный Haettenschweiler, или ряд "сжатых" шрифты.

Я просто отвечаю на вопрос без каких-либо комментариев относительно того, является ли это хорошей идеей или правильным решением для вашей проблемы.

<Ол>
  • Перечислите шрифты.
  • Для каждого шрифта создайте его экземпляр, выделите его в DC и используйте call GetTextMetrics .
  • Проверьте поле tmAveCharWidth структуры метрик. Если он меньше, чем самый маленький из найденных к настоящему времени, запомните его и шрифт.
  • Выберите шрифт из DC и уничтожьте его.
  • Восстановите шрифт с наименьшей средней шириной символа и используйте его.
  • Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top