RichEdit2.0 через API, цвет, шрифт...и тд
а) пользователь набирает текст в RichEdit2, выделяет его и оформляет цветом, подчёркиванием, кусочек текста там, там, какой-то кусочек текста курсивом и т.д
(под окном ввода текстакнопочки - как в ворде I U B T C .... нажимая на которые получаем введённый текст с этими атребутами)
б) потом этот оформленный текст сохраняется в текстовой переменной типа char, хранится некоторое время и потом выдаётся в другой RichEdit2 в другом окне приложения или вообще в другом приложении, с СОХРАНЁННЫМ оформлением.
настройки цвета и типа шрифта конвертирубтся допустим так:
жирным быделен текс ставим ключ: /b, закончилась часть жирного /B
цвет: /RGB, отключение /rgb
курсив: /It, отключение /it
и так далее тип шрифта, зачеркнутость и подчёркивание, размер....
Почему все настройки шрифта в текст, потому что уже существует интерфейс обмена между окнами и его менять - в 100раз больше работы и вообще куча программ зацепится, которых изменить нет возможности.
Как пробывал:
Всё на API через sendmessage
Использовал CHARFORMAT2, ставил атрибуты, но при этом другие теряются, если уже был цвет, то я ставлю следующее слово другим цветом или например жирным делаю, то и тот тоже становится новым атрибутом а свой теряет, хотя посылаю сообщение _seletcion (не помню точно как пишется, типо работать с выделенным текстом только), перед этим посылаю сообщение начала и конца выделенного текста. Ну я думаю здесь просто надо точно последовательность сделать и читать атребуты и на них ставить, а у меня видимо получается что я как-бы новые ставлю....
А вот как эти атребуты потом вытащить и перевести в текстовые ключи а потом опять в атребуты в другом окне - тут я сел... ПОМОГИТЕ!!! Спасибо.
Помощь- пиши не на АПИ! Такие вещи на нем реализуются путем написание сотен строк кода.
У меня больше проблема вызывает работа со строками и CHARFORMAT2 - как ключи типа /b /u и тд, выловить в строке и поставить соотв. атрибут в RICHEDIT2.0 с точки установки этого ключа в тексте... и наоборот, найти изменение атрибута в тексте и преобразовать его в соотв. текстовый ключ.
Думаю всё решиться в цикле While ... и доступ через указатели к строке, тут никаких MFC ненадо. Но я несилён в строках с указателями и с CHARFORMAT2 (я вообще начинающий :-) ).
Длина текста небольшая, порядка 256 символов, так что цикл будет небольшой по времени. Ведь атребуты могут идти подряд и в перемешку, вот именно это и эти возможние комбинации меня путают в создании алгоритма цикла. Сделать на 1 атрибут нет проблем, 1 цикл и я найду в строке подстроку "/b", и могу поставить "жирность", но вот с кучей атрибутов как быть....