RichEdit 2.0 Inhalt Formatieren



  • Hallo Leute,

    mal ne Frage, ich versuche den Inhalt eines RichEdit 2.0 Control zu Formatieren.

    CString m_strText = "Das ist der der Text der Formatiert werden soll .....";
    CString zeichen = "";
    m_AuthAnzeige.SetSel(-1,m_strAuthStand.GetLength()); // ist das RichEdit Control
    for(int i = 0;i < m_strTex.GetLength(); i++)
    {
    	zeichen = m_m_strTex[i];
    	int zaehler = i;
    	if(zaehler%2 == 1)
    	{
    	   COLORREF crText = RGB(255,0,0);
                AddString(zeichen,crText,TRUE);
    	   m_AuthAnzeige.ReplaceSel(zeichen, TRUE);
    	}
    	else
    	{
    	  COLORREF crText = RGB(0,0,0);
               AddString(zeichen,crText,TRUE);
    	  m_AuthAnzeige.ReplaceSel(zeichen, TRUE);
    	}
    	zeichen = "";
    }
    
    void CAuthBestaetigung::AddString(CString strToAdd, COLORREF &crNewColor, bool bBold) 
    {   
        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_AuthAnzeige.GetWindowTextLength(); 
        // m_AuthAnzeige.SetSel(iStartPos, iEndPos);
    	m_AuthAnzeige.SetSel(-1, iEndPos);
        m_AuthAnzeige.SetSelectionCharFormat(cf); 
        m_AuthAnzeige.HideSelection(TRUE, FALSE);     
    
    }
    

    Das Funktioniert zwar, ist aber bei längeren Text sau langsam...
    Ist das des weisheit letzter Schluß ??

    Da muß es doch was anderes geben ??

    Gruß
    andy_mann


Anmelden zum Antworten