RichEdit Paint

Signaler
Messages postés
260
Date d'inscription
lundi 27 janvier 2003
Statut
Membre
Dernière intervention
27 août 2008
-
Messages postés
41
Date d'inscription
dimanche 9 février 2003
Statut
Membre
Dernière intervention
28 avril 2010
-
Salut a tous,

-->OS Win98, Borland C++ 5

Je suis toujours avec mon compilateur maison, et j'ai un petit probleme d'affichage de ma RichEdit -> c'est pour le syntax highlighting.

en fait, quand j'highlight ma ligne qui vient d'etre modifié (en gros une mise a jour de ma ligne), je selectionne mon texte, l'analyse et le remplace par le texte highlighté. Ca marche mais comme il "rafraichi" ma fenetre client, bien que ca aille vite, on voi ce qu'il fait (selection,remplacement) et c'est vraiment pas cool pour l'utilisateur, surtout quand le slide fait des aller-retour a chaque fois q'on presse une touche.

Mon idée est de désactiver le rafraichissement pendant le traitement et de le reactiver apres, j'utilise :
SendMessage(WM_SETREDRAW,false);
avant le traitement pour desactiver
et SendMessage(WM_SETREDRAW,true); pour reactiver, mais ca ne reactive rien, ca rafraichis pas, meme si je fait : TControl::EvPaint();
TWindow::EvPaint();
TWindow::EvEraseBkgnd(GetDC(NULL));

en bref, j'ai un peut tout essayé. Donc comment faire pour rafraichir mon richedit ???

Merci a tous, et au fait, j'aurais voulu en savoir + sur l'utilisation des DC, Device Context il me semble.

A+, Hart

1 réponse

Messages postés
41
Date d'inscription
dimanche 9 février 2003
Statut
Membre
Dernière intervention
28 avril 2010

Et bien en faite ta solution est un peu barbar, mais il y a une solution bien plus agréable pour ça quio est de cacher selection et curseur en envoyant le message EM_HIDESELECTION (true cache la selection et false l'affiche).

J'espère avoir répondu à ta question,

Bub325
Le codeur pas comme tout le monde
8-)

PS: Je ne capte pas les messages envoyer par le richedit dans la fenètre parent comme EN_SELCHANGE ainsi que celui qui est envoyé lorsqu'on tape un caractère (Merci de me le rappeler).
Merci beaucoup