Определите ширину текстового поля или текстовой области для размещения трех строк

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

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

Я понимаю, что если я смогу понять, как это сделать для текстового поля или ярлыка, я более или менее решу проблему. Возможно, это можно сделать с помощью Windows API, но любые советы будут оценены.

1 ответ

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

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

В моих приложениях на C#.net я использую Graphics.MeasureString (textString, шрифт [имя, размер, стиль, единицы измерения]), чтобы сообщить мне, насколько широка моя строка.

У вас может быть что-то подобное в наличии. Если вы можете рассчитать ширину текстовой строки, вы можете разделить на 3 и соответственно применить количество столбцов.

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