IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

[MFC] Problème avec un RichEdit et couleur


Sujet :

MFC

  1. #1
    Rédacteur
    Avatar de Erakis
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2003
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 523
    Par défaut [MFC] Problème avec un RichEdit et couleur
    Bonjour.

    J'aimerais ajouter des lignes de messages à mon RichEdit et ce en choissisant la couleur pour chaque message. De plus, j'aimerais que la ScrollBar s'ajuste au contenu. Donc si j'ai 200 lignes, qu'elle se scroll (update) toute seul jusqu'à la dernière ligne. Voilà le code que j'ai présentement conçu jusqu'ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    void SendMessageToViewer(const CString & msg, const COLORREF & crNewColor)
    {
    	long iTotalTextLength = m_Rec_Viewer.GetTextLength();
    	m_Rec_Viewer.SetSel( -1, -1);
    	m_Rec_Viewer.ReplaceSel( msg );
    	long iStartPos = iTotalTextLength;
     
    	CHARFORMAT cf;
    	cf.cbSize = sizeof(CHARFORMAT);
    	cf.dwMask = CFM_COLOR | CFM_UNDERLINE | CFM_BOLD;
    	cf.dwEffects = (unsigned long)~( CFE_AUTOCOLOR | CFE_UNDERLINE | CFE_BOLD);
    	cf.crTextColor = crNewColor;
     
    	long iEndPos = m_Rec_Viewer.GetTextLength();
    	m_Rec_Viewer.SetSel(iStartPos, iEndPos);
    	m_Rec_Viewer.SetSelectionCharFormat(cf);
    	m_Rec_Viewer.HideSelection(TRUE, FALSE);
       m_Rec_Viewer.LineScroll( this->m_SequencerDialog->m_Rec_Viewer.GetLineCount() - 1 );
    	m_Rec_Viewer.UpdateWindow();
    }
    Cela fonctionne mais pas tout à fait correctement. La première ligne tout va bien mais à la 2ième, 3ième, 4ième, etc... La couleur est mal affectée à la ligne, parfois les 2-3 premiers caractères possèdent l'ancienne couleur de la phrase précédante.

    Merci pour votre aide.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2005
    Messages : 26
    Par défaut
    Pour les couleurs, je sais pas, mais en tout cas verifie qu'un objet CRichEditCtrl dispose de la methode EnsureVisible qui te permet de forcer l'affichage de l'element que tu desires via un index...

Discussions similaires

  1. [MFC]Problème avec CCriticalSection
    Par mambo dans le forum MFC
    Réponses: 8
    Dernier message: 28/06/2006, 08h46
  2. [MFC] Problème avec un splitter
    Par julien.nasser dans le forum MFC
    Réponses: 9
    Dernier message: 24/05/2006, 15h00
  3. Réponses: 3
    Dernier message: 10/01/2006, 14h01
  4. Réponses: 5
    Dernier message: 10/05/2005, 10h22
  5. [MFC] problème avec les insertions dans CComboBox
    Par Joeleclems dans le forum MFC
    Réponses: 12
    Dernier message: 11/06/2004, 15h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo