![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Anton Vatchenko |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 21.5.2004 Репутация: нет Всего: -1 |
Я делаю программу, в которой будет отображаться HTML. Все уже сделал (почти): теги распознаются, все заносится в структуру, отображается. Но пока не могу сделать перенос строк (по словам), которые не влазят. Как и когда лучше такое делать? При разборе HTML, или при отрисовке? Что делать, когда размеры окна меняются. Эксплорер быстро действует, хотелось бы и мне так...
|
|||
|
||||
| Dreamer_0x01 |
|
|||
![]() Терминатор ![]() ![]() Профиль Группа: Участник Сообщений: 780 Регистрация: 14.4.2005 Где: Санкт-Петербург Репутация: нет Всего: 12 |
как и в чем происходит вывод информации в ваш "миниброузер"?
Я так понимаю, что это какое-то окно, в контексте устройства которого вы рисуете какими-то фуннкциями типа DrawText(), или что-то "нестандартное"? -------------------- Нет ничего невозможного. Есть цели, и есть время и силы на их достижение. |
|||
|
||||
| Dr.Wisdom |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 145 Регистрация: 6.1.2005 Репутация: нет Всего: 0 |
Если я правильно понял проблему.
Пусть текст переноситься при отрисовке, которая заново проводиться при изменении размеров окна. Пусть считается скока символов полезет на экран. Со шрифтами с различной длинной символа это - проблема. Найти нелезущий символ в строке, найти первый предыдущий пробел, начать новую строчку, повторить. --------------------
VIVA LA RESISTANCE |
|||
|
||||
| Дрон |
|
|||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург Репутация: 10 Всего: 93 |
При отрисовки кажой строки сначала считаем её размер в пикселях (если это WinAPI -- то GetTextExtentPoint32 вам в руки
Если выясняется, что она не влазит, то начинаем шаманить. Например пусть у нас до края экрана 300 пикселов, а нам нужно 500. Ну берём и делим 300/500 = 60%. Отсекаем 60% строки и смотрим на её ширину (Да, я знаю, что ширина символов произвольна, но сейчас нам нужно только приближение) Влазит? Ну тогда вот от этого места и начинаем добавлять по одному слову пока не вылезем за допустимую ширину. Не влазит? Давайте опять прикинем в % сколько нам нужно оставить от строки и вернёмся к предыдущему шагу. Собственно вот, если нужен был негритянский алгоритм... Если же мы белые люди, то просто возьмём WinAPI функцию DrawText и в параметре uFormat укажем ей DT_WORDBREAK ЗЫ: Это всё для WinAPI. Хотелось бы узнать под какую платформу пишем и главное чем нас Internet Explorer не устроил? Это сообщение отредактировал(а) Дрон - 24.9.2005, 18:39 -------------------- Да. Именно так. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |