![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
Royan |
|
|||
Dreamer ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 14.9.2002 Где: Лондон Репутация: нет Всего: 15 |
Допустим у меня выведен форматированный текст, (что-то жирным что-то курсивом)
Задача: обрабатывая сообщение WM_PAINT, не производить форматирование повторно то есть не прибегать к умышленному выведению фрагмента жирным или курсивом, а воспользоваться уже сделанным форматированием. При чем следует учесть что вариант сделать скриншот и потом его пихать по пришествии WM_PAINT не вариант так как текст может вылезать за рамки окна => скриншот здесь не поможет -------------------- Открыта вакансия Junior Java Developer'а в нашем лондонском офисе, подробнее можно узнать здесь |
|||
|
||||
AndyY |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 316 Регистрация: 8.5.2004 Где: СПб Репутация: 2 Всего: 4 |
а разве есть проблема сохранить форматирование?
думаю, это самый простой вариант - хранить список слов (с атрибутами шрифта и размерами текста) и выводить их на paint в цикле |
|||
|
||||
Nastya |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 27.3.2002 Где: Мариуполь Репутация: 5 Всего: 44 |
Более правильно все "рисование" в том числе вывод текста помещать в WM_PAINT, и по определенным событиям вызывать обновление нужного прямоугоьника. Соответсвенно меняя значения переменных, отвечающих за формат графическо информации
-------------------- Что бы понять рекурсию, надо понять рекурсию "Профессионал - это человек сделавший все возможные ошибки в очень узкой области". Н.Бор |
|||
|
||||
Олег М |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 436 Регистрация: 10.6.2004 Где: Москва Репутация: 7 Всего: 7 |
Что-то я вообще не въехал в задачу. Что значит производить форматирование повторно и куда делось в таком случае старое? Что вообще понимается под форматированием в данном случае? |
|||
|
||||
Royan |
|
|||
Dreamer ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 14.9.2002 Где: Лондон Репутация: нет Всего: 15 |
Кажется я немного поумнел. По всей видимости я могу сделать следующее. Разделив текст на логические единицы, (в моем случае это исключительно слова), я должен запомнить HFONT каждого такого слова. То есть в грубом виде иметь массив типа HFONT размерностью == (кол-во слов в файле откуда берется текст)
Хотя если слов будет 10000 это плохое решение может можно сделать иначе
Форматированный тест означает что, что-то выведено жирным, что-то курсивом и шрифтом Courier а что-то оставлено без форматирования. При этом главное не использовать ничего кроме WinAPI, STL и собственно С++ -------------------- Открыта вакансия Junior Java Developer'а в нашем лондонском офисе, подробнее можно узнать здесь |
|||
|
||||
AndyY |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 316 Регистрация: 8.5.2004 Где: СПб Репутация: 2 Всего: 4 |
Royan
ну, можно хранить не сам HFONT, а индекс в массиве HFONT:). повторяюсь - еще удобно хранить размеры (ширину) слова для быстрого расчета позиции следующего. |
|||
|
||||
Royan |
|
|||
Dreamer ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 14.9.2002 Где: Лондон Репутация: нет Всего: 15 |
-------------------- Открыта вакансия Junior Java Developer'а в нашем лондонском офисе, подробнее можно узнать здесь |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |