RichEdit Paint

crocejf2000 Messages postés 260 Date d'inscription lundi 27 janvier 2003 Statut Membre Dernière intervention 27 août 2008 - 18 févr. 2003 à 11:19
Bub325 Messages postés 41 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 28 avril 2010 - 23 août 2003 à 20:09
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

Bub325 Messages postés 41 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 28 avril 2010
23 août 2003 à 20:09
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
0
Rejoignez-nous