| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Перенос в HTML |
| Автор: Anton Vatchenko 24.9.2005, 11:32 |
| Я делаю программу, в которой будет отображаться HTML. Все уже сделал (почти): теги распознаются, все заносится в структуру, отображается. Но пока не могу сделать перенос строк (по словам), которые не влазят. Как и когда лучше такое делать? При разборе HTML, или при отрисовке? Что делать, когда размеры окна меняются. Эксплорер быстро действует, хотелось бы и мне так... |
| Автор: Dreamer_0x01 24.9.2005, 16:36 |
| как и в чем происходит вывод информации в ваш "миниброузер"? Я так понимаю, что это какое-то окно, в контексте устройства которого вы рисуете какими-то фуннкциями типа DrawText(), или что-то "нестандартное"? |
| Автор: Dr.Wisdom 24.9.2005, 18:15 |
| Если я правильно понял проблему. Пусть текст переноситься при отрисовке, которая заново проводиться при изменении размеров окна. Пусть считается скока символов полезет на экран. Со шрифтами с различной длинной символа это - проблема. Найти нелезущий символ в строке, найти первый предыдущий пробел, начать новую строчку, повторить. |
| Автор: Дрон 24.9.2005, 18:39 |
| При отрисовки кажой строки сначала считаем её размер в пикселях (если это WinAPI -- то GetTextExtentPoint32 вам в руки Если выясняется, что она не влазит, то начинаем шаманить. Например пусть у нас до края экрана 300 пикселов, а нам нужно 500. Ну берём и делим 300/500 = 60%. Отсекаем 60% строки и смотрим на её ширину (Да, я знаю, что ширина символов произвольна, но сейчас нам нужно только приближение) Влазит? Ну тогда вот от этого места и начинаем добавлять по одному слову пока не вылезем за допустимую ширину. Не влазит? Давайте опять прикинем в % сколько нам нужно оставить от строки и вернёмся к предыдущему шагу. Собственно вот, если нужен был негритянский алгоритм... Если же мы белые люди, то просто возьмём WinAPI функцию DrawText и в параметре uFormat укажем ей DT_WORDBREAK ЗЫ: Это всё для WinAPI. Хотелось бы узнать под какую платформу пишем и главное чем нас Internet Explorer не устроил? |