Помогите пожалуйста с форматом RTF.
На диалоге есть CRichEditCtrl. Туда читаю по-строчно файл (в hex'е). Строка, к примеру, 48 штук WORD значений.
Пытаюсь каждую строку выразить табличной строкой (48 колонок).
Вот мой код:
void CWin_CCHexPad::AddValueFrame(BYTE word_size, BYTE val_len, DWORD* frame_string){
// val_len - количество значений в строке и одновременно длина массива frame_string
// word_size - размер в байтах одного значения выводимого в одну колонку
// frame_string - массив прочитанных значений из файла которые надо вывести в табличную строку
char tmp[1024];
CString val; // результирующая строка выводимая в CRichEdiCtrl
DWORD i, value;
// Начало RTF строки
val="{\\rtf1{\\fonttbl{\\f0\\fmodern\\fprq1\\fs20{\\*\\fname Courier New;}Courier New CYR;}}{\\colortbl;\\red0\\blue0\\green0;\\red255\\blue255\\green255;\\red128\\green128\\blue255;}";
val+="\\trgaph10\\intbl\\trautofit1";
for(i=0;i<val_len;i++){ // val_len к примеру равен 48 (количество значений в строке)
itoa(600*(i+1), tmp,10); // ширина ячейки
val=val+"\\cellx"+tmp+" "; // для i=0, "..\\cellx600 "
val+="\\f0\\fg1\\highlight2 "; //цвет, подсветка и шрифт выводимого значения в колонку
sprintf(tmp,"%.4X",frame_string[i]); // Преобразуем i-тое значение из массива в строковый hex-вид
val=val+tmp+" \\cell"; // закрываем ячейку
}
val+="\\row\\par}"; // закрываем строку
mViewLimitText+=val.GetLength();
mView.LimitText(mViewLimitText); // увеличиваеm LimitText на размер сформированной строки
EDITSTREAM es; // заполняем структуру для StreamIN CallBack-функции
es.dwCookie = (DWORD)&val;
es.pfnCallback = HexPadStreamInCallback;
mView.SetSel(-1,-1); // перед выводом помещаем курсор в конец (для режима добавления текста)
mView.StreamIn(SF_RTF|SFF_SELECTION, es);
}
Что и где я пропустил в описании формата выводимой строки? Беда в том что таблица выводится следующим образом:
1) прорисовываются только 31 ячейка
2) вторая ячейка — пустая
3) все значения оставшиеся после прорисованной ячейки имеют неодинаковый отступ между собой... то плотнее стоят... то разряженее...
Прошу о помощи!