Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Visual C++/MFC/WTL > CRichEditCtrl вывод текста колонками |
Автор: GSasha 13.1.2010, 00:26 |
Добрый вечер уважаемые программисты. Стоит задача вывода текста в CRichEditCtrl в табличной форме, должны быть колонки, а линии поочередно подсвечены (как в CListCtrl). Направьте, пожалуйста, на путь истинный, это мой первый опыт работы с данным контролом. ![]() |
Автор: Albor 13.1.2010, 14:16 |
Вставляй в текст строки символы '\t' для разделения полей таблицы, и '\r' '\n' для перехода на следующую строку. |
Автор: GSasha 13.1.2010, 16:34 |
Вариант с табами не проходит, так как слова могут быть разной длины, а также при смене шрифта все форматирование сьежает... |
Автор: Albor 13.1.2010, 16:55 |
Ну, тогда CListCtrl. А сделать аналог из CRichEdit - нужно хорошо постараться. Вообще-то, какой вопрос, такой и ответ. Строки, что, должны выводиться с разным форматом текста? Если да, то ничего приличного не получится. Строки текста, я так понял, будут добавляться как в список (всмысле - заранее, до вывода текста, нельзя рассчитать размеры?). Если строк будет не очень много, то можно пересчитывать поля вывода и переписывать весь текст в контроле, либо заранее определиться с максимальным размером полей, что, скорее всего, проще, надёжнее и легче для глаз пользователя, чем постоянно прыгающий размер колонок. |
Автор: GSasha 13.1.2010, 17:20 |
Спасибо за ответ, я Вас понял. Сорри за невнятный вопрос. Меня интересует именно заранее заданные максимальные поля для вывода текста в виде колонок (таблица). |
Автор: Albor 13.1.2010, 17:44 |
Навскидку: 1. Наследуемся от CRichEdit; 2. Организуем структуру данных, содержащую строку текста в виде подстрок по количеству колонок; 3. Используем моноширинный шрифт, если не хочется использовать табуляцию; 4. Выравниваем длину подстрок в соответствии с максимальным размером поля, добавляя пробелы, либо, обрезая подстроку. 5. Если подстроки будут обрезаться, добавляем контейнер для хранения структур из пункта 1, где подстроки будут храниться в натуральном виде. 6. Работаем над вышеперечисленным, исправляя по ходу возникшие проблемы. |
Автор: GSasha 14.1.2010, 14:05 |
Подскажите, как перевести высоту шрифта в твипсах (CHARFORMAT yHeight) в высоту шрифта LOGFONT lfHeight? |
Автор: Albor 14.1.2010, 14:25 |
по-моему нужно разделить на 20 |