lorsque vous effacez un texte coloré. Par défaut, le contrôle définit la nouvelle couleur de texte saisie sur celle qui a été récemment effacée. comment pouvez-vous éviter cela? avez-vous besoin de vérifier chaque style de caractère avant de taper?Modifier la couleur dans Rich Edit Control
MISE À JOUR:
J'essaie de définir la couleur du texte comme celui-ci.
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
Je rétablis la couleur par défaut (noir) après avoir changé la couleur (disons rouge). mais à l'exécution, lorsque j'essaie d'effacer ce texte (rouge) dans le fichier richedit, les propriétés de couleur du texte par défaut sont également changées (en rouge). – cpx
Oui, c'est pourquoi j'ai recommandé de restaurer les propriétés SelectionColor/BackColor. –
mais je ne sais pas quand restaurer, envoie-t-il comme un message de notification à son parent que la propriété de couleur a changé? – cpx