Вопрос

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

ОБНОВЛЯТЬ:

Я пытаюсь установить цвет текста вот так.

SendMessage(hEdit, EM_SETSEL, start_pos, end_pos); //select text for coloring

        CHARFORMAT cf;
        memset( &cf, 0, sizeof cf );
        cf.cbSize = sizeof cf;
        cf.dwMask = CFM_COLOR;
        cf.crTextColor = RGB(255,0,0);
        SendMessage( hEdit , EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM) &cf);

        SendMessage(hEdit, EM_SETSEL, -1, 0 ); //deselect text
        cf.crTextColor = RGB(0,0,0); //reset colour
        SendMessage( hEdit , EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM) &cf); //set colour
Это было полезно?

Решение

Ваш вопрос совершенно неясен.Дикий удар по этому поводу:вы теряете все форматирование при назначении свойства Text.Обязательно используйте вместо этого AppendText().И вернуть свойствам SelectionColor и SelectionBackColor то, что было после раскрашивания любого текста, чтобы вновь введенный текст получал предпочтительные цвета по умолчанию.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top