Mudança de cor no controle de edição rico
-
21-09-2019 - |
Pergunta
Quando você apaga um texto colorido. Por padrão, o controle define a nova cor de texto inserida de volta para isso recentemente apagada. Como você pode evitar isso? Você precisa verificar cada estilo de caractere antes de digitar?
ATUALIZAR:
Estou tentando definir a cor do texto como essa.
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
Solução
Sua pergunta não é bastante clara. Sabra selvagem: você perde toda a formatação ao atribuir a propriedade de texto. Certifique -se de usar AppendText (). E para definir as propriedades SelectionColor e SelectionBackColor de volta ao que era depois de colorizar qualquer texto, para que o texto inserido recentemente obtenha as cores padrão preferidas.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow