Показать сообщение отдельно

  #2  
Старый 30.10.2006, 16:38
sn0w
Статус пользователя:
Регистрация: 26.07.2005
Сообщений: 568
Провел на форуме:
1290766

Репутация: 1236


По умолчанию

тк CSocket это не что иное как ооп-интерпретация стандартных виндовых сокетов, то тут в принципе все также как и в апи, просто нужно отправить буфер с основными характеристиками. например можно сделать структуру-описатель текста которая будет засылаться перед несущей строкой или после нее (сам решишь).

typedef struct _FONTDESCR{
// "магический" идентификатор
BYTE n_font_magic = 0x00;
// далее характеристики
char s_font_name[128];
int n_font_size;
int n_color;
int n_mode; // bold, italic, etc
//... + какие угодно параметры
}FONTDESCR;

магика нужна при приеме пакета, те если первый байт пакета будет равен 0 (строки наоборот завершаются нулем) то мы будем однозначно знать что это пакет не строка, а управляющий стиль.

char s_buff[4096];
int rc;
...
rc = recv( s, s_buff, sizeof(s_buff), 0 );
if(rc!=SOCKET_ERROR ){
if(s_buff[0]==0){
FONTDESCR *pDescr = (FONTDESCR*)&s_buff[0];
ProcessRichTextFormat(pDescr); // установка формата на строку
}else{
AddTextToRichEdit(s_buff); // просто добавление текста
}
}
__________________


snow white world wide
 
Ответить с цитированием