Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > RichEdit


Автор: LordNet 30.10.2006, 18:59
Как мне из одного RichEdit'а в другой RichEdit перекинуть весь текст со стилями?
Зарание спасибо.

Автор: Любитель 31.10.2006, 17:47
Получаешь текст в RTF и копируешь. Проще некуда. smile 

Автор: LordNet 1.11.2006, 18:10
Цитата(Любитель @ 31.10.2006,  17:47)
Получаешь текст в RTF и копируешь. Проще некуда. smile

Можно маленький примерчик кода?
Зарание спасибо.

Автор: Любитель 2.11.2006, 10:26
На память методы не момню. Как вариант (точно такие есть): Copy(), Paste()  smile 

Автор: LordNet 2.11.2006, 22:50
Цитата(Любитель @ 2.11.2006,  10:26)
На память методы не момню. Как вариант (точно такие есть): Copy(), Paste()  smile

Copy и paste, это и я знаю.
Мне надо переместить данные (текст и стили) в переменую.

Автор: Любитель 3.11.2006, 12:08
Копи-паст копирует текст со стилями  smile 

Автор: LordNet 3.11.2006, 16:15
Цитата(Любитель @ 3.11.2006,  12:08)
Копи-паст копирует текст со стилями  smile

Логично =)
Мне надо загнать текст со стилями в переменую что бы ее передать по сокету!

Автор: Любитель 4.11.2006, 12:17
А, так я думал тебе в рич-эдит напрямую надо.
Ну тогда лучшим решением (посмотрел только что МСДН) будет StreamOut, с форматом SF_RTF.
Скажем что-то такое:
Код

DWORD SendRtfData(DWORD_PTR dwSender, LPBYTE buffer,
                                  LONG countToSend, LONG* pSendedCount)
{
    // в dwSender- информация о получателе
    // юзаем reinterpret_cast к типу указателя
    MySender* sender= reinterpret_cast<MySender*>(dwSender);
    
    // предполагаем существование у MySender
    // метода, отслыающего данные с двумя параметрами:
    // буфер с данными и размер буфера, возвращает кол-во отосланных данных
    *pSendedCount = sender->Send(buffer, countToRead);
}

... // функция-обработчик
{
   MySender sender(/*параметры*/);
   EDITSTREAM es;

   es.dwCookie = reinterpret_cast<DWORD_PTR>(&sender);
   es.pfnCallback = SendRtfData;

   richEdit.StreamOut(SF_RTF, es);
}


То?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)