Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   CSocket и RichEdit в MFC (https://forum.antichat.xyz/showthread.php?t=26186)

LordNet 30.10.2006 02:24

CSocket и RichEdit в MFC
 
Как мне по сокету (CSocket) передать и принять все стили текста (шрифт,цвет и т.д.) c текстом из CRichEditCtrl?
Желательно показать примерчик.
Заранее спасибо!

sn0w 30.10.2006 16:38

тк 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); // просто добавление текста
}
}


Время: 10:01