Farbe des Richedittextes an einer bestimmten Stelle ändern?



  • Hallo Leute,

    vielleicht habe ich diesmal mehr Glück und bekomme eine Antwort von Euch...

    Ich möchte in einem RichEdit während der Texteingabe nach dem Drücken einer bestimmten Tastenkombination z.Bsp STRG+L einen konstanten text an mein Rich Edit anhängen und diesen mit einer anderen Farbe versehen.

    Das mit der Tastenkombination und dem Einfügen des Textes ist mir ohne Probleme gelungen.
    Ich habe eine entsprechende Abfangroutine in PreTRanslateMessage implementiert.

    Wie kann ich denn bloß diesen Eingefügten Text mit einer anderen Farbe versehen und anschl. für die weitere Texteingabe wieder auf standardfarbe z.bsp Schwarz zurücksetzen?

    Hoffe , daß sich diesmal jemand meldet.

    danke
    dominik



  • Guck dir das mal an:

    void CSockDlg::AddString(CString strToAdd, COLORREF &crNewColor, bool bBold)
    {
    	int iTotalTextLength = m_ctrlMessages.GetWindowTextLength();
    	m_ctrlMessages.SetSel(iTotalTextLength, iTotalTextLength);
    	m_ctrlMessages.ReplaceSel(strToAdd);
    	int 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);
    	if(bBold)
    		cf.dwEffects|=CFE_BOLD;
    	cf.crTextColor	= crNewColor;
    	int iEndPos = m_ctrlMessages.GetWindowTextLength();
    	m_ctrlMessages.SetSel(iStartPos, iEndPos);
    	m_ctrlMessages.SetSelectionCharFormat(cf);
    	m_ctrlMessages.HideSelection(TRUE, FALSE);	
    
    }
    


  • Super dEUs!

    Vielen Dank!!!!

    dominik


Anmelden zum Antworten