Здрасьте!
Вот такая проблема-надо вывести длинное слово на экран
естесвенно чтобы оно написалось с переносом(с двумя,тремя)
DrawText не подходит так как это самое динное слово может начинаться
не с начала строки например:
--------------------
это окно
--------------------
я_очень_длинное_сл
овы_которое не помещ
ается на одной строк
е.
--------------------
Еще после написания этого длинного слова нам понадобиться написать еше несколько слов поменьше.
Так вот в чем проблема-Так как фонт _непропорциональный_ то нам никак не высчитать
какя часть слова влезает на очередную строку..разве что использовать _среднюю_ ширину
шрифта но это плохо..
Как поступить?
Здравствуйте Рома, Вы писали:
Р>Здравствуйте maslukov
Р>GetTextExtentExPoint или GetTextExtentPoint32
Дело в том что GetTextExtentOint возвращает размер текста.Что то типа прямоуголника в какой он
влезает( size.x и size.y)
Но у меня другая проблема.Я знаю что слово не влезает на одну строку(как раз вызвав GetTextExtentPoint я
это узнаю.)
Теперь мне нужно написать на первой строке сколь-ко то символов, а потом на второй строке остаток.
Так вот как высчитать, сколько же символов писать на первой строке.
Пока мне пришла в голову идея делать побуквенный GetTextExtentPoint.Т.е. вызывать его каждый раз для
большего количества букв на одну, и считать — помещается ли? как только вышли за коно-написать буковки(без последней).
Хммм...странный способ но другого мне не придумать... :user:
Здравствуйте Аноним, Вы писали:
А>Здравствуйте Рома, Вы писали:
Р>>Здравствуйте maslukov
Р>>GetTextExtentExPoint или GetTextExtentPoint32
А>Хммм...странный способ но другого мне не придумать... 
Я тоже ничего другого придумать не смог, пришлось делать именно так.
Может и есть ф-ия, которая автоматически выполняет перенос, но я её не нашёл.
Здравствуйте Аноним, Вы писали:
А>Дело в том что GetTextExtentOint возвращает размер текста.Что то типа прямоуголника в какой он
А>влезает( size.x и size.y)
А>Но у меня другая проблема.Я знаю что слово не влезает на одну строку(как раз вызвав GetTextExtentPoint я
А>это узнаю.)
А>Теперь мне нужно написать на первой строке сколь-ко то символов, а потом на второй строке остаток.
А>Так вот как высчитать, сколько же символов писать на первой строке.
А>Пока мне пришла в голову идея делать побуквенный GetTextExtentPoint.Т.е. вызывать его каждый раз для
А>большего количества букв на одну, и считать — помещается ли? как только вышли за коно-написать буковки(без последней).
А>Хммм...странный способ но другого мне не придумать...
Возможно это не самое подходящее решение для Вашей проблемы,
но, если других вариантов нет, стоит попробовать...
Можно создать lookup-таблицу для каждого символа используя GetTextExtentPoint,
и написать простую функцию, которая будет использовать данную таблицу
для определения позиции переноса в переданной ей строке.