TextOut и непропорциональный фонт
От: maslukov  
Дата: 28.07.02 21:35
Оценка:
Здрасьте!

Вот такая проблема-надо вывести длинное слово на экран
естесвенно чтобы оно написалось с переносом(с двумя,тремя)
DrawText не подходит так как это самое динное слово может начинаться
не с начала строки например:

--------------------
это окно
--------------------

я_очень_длинное_сл
овы_которое не помещ
ается на одной строк
е.
--------------------

Еще после написания этого длинного слова нам понадобиться написать еше несколько слов поменьше.

Так вот в чем проблема-Так как фонт _непропорциональный_ то нам никак не высчитать
какя часть слова влезает на очередную строку..разве что использовать _среднюю_ ширину
шрифта но это плохо..

Как поступить?
Re: TextOut и непропорциональный фонт
От: Рома Россия  
Дата: 28.07.02 21:41
Оценка:
Здравствуйте maslukov
GetTextExtentExPoint или GetTextExtentPoint32
Re[2]: TextOut и непропорциональный фонт
От: Аноним  
Дата: 30.07.02 09:55
Оценка:
Здравствуйте Рома, Вы писали:

Р>Здравствуйте maslukov

Р>GetTextExtentExPoint или GetTextExtentPoint32

Дело в том что GetTextExtentOint возвращает размер текста.Что то типа прямоуголника в какой он
влезает( size.x и size.y)
Но у меня другая проблема.Я знаю что слово не влезает на одну строку(как раз вызвав GetTextExtentPoint я
это узнаю.)
Теперь мне нужно написать на первой строке сколь-ко то символов, а потом на второй строке остаток.
Так вот как высчитать, сколько же символов писать на первой строке.
Пока мне пришла в голову идея делать побуквенный GetTextExtentPoint.Т.е. вызывать его каждый раз для
большего количества букв на одну, и считать — помещается ли? как только вышли за коно-написать буковки(без последней).
Хммм...странный способ но другого мне не придумать... :user:
Re[3]: TextOut и непропорциональный фонт
От: Рома Россия  
Дата: 30.07.02 10:01
Оценка:
Здравствуйте Аноним, Вы писали:

А>Здравствуйте Рома, Вы писали:


Р>>Здравствуйте maslukov

Р>>GetTextExtentExPoint или GetTextExtentPoint32

А>Хммм...странный способ но другого мне не придумать...

Я тоже ничего другого придумать не смог, пришлось делать именно так.
Может и есть ф-ия, которая автоматически выполняет перенос, но я её не нашёл.
Re[3]: TextOut и непропорциональный фонт
От: xpl0rer  
Дата: 30.07.02 17:18
Оценка:
Здравствуйте Аноним, Вы писали:

А>Дело в том что GetTextExtentOint возвращает размер текста.Что то типа прямоуголника в какой он

А>влезает( size.x и size.y)
А>Но у меня другая проблема.Я знаю что слово не влезает на одну строку(как раз вызвав GetTextExtentPoint я
А>это узнаю.)
А>Теперь мне нужно написать на первой строке сколь-ко то символов, а потом на второй строке остаток.
А>Так вот как высчитать, сколько же символов писать на первой строке.
А>Пока мне пришла в голову идея делать побуквенный GetTextExtentPoint.Т.е. вызывать его каждый раз для
А>большего количества букв на одну, и считать — помещается ли? как только вышли за коно-написать буковки(без последней).
А>Хммм...странный способ но другого мне не придумать...

Возможно это не самое подходящее решение для Вашей проблемы,
но, если других вариантов нет, стоит попробовать...

Можно создать lookup-таблицу для каждого символа используя GetTextExtentPoint,
и написать простую функцию, которая будет использовать данную таблицу
для определения позиции переноса в переданной ей строке.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.