Kapazität eines Editfelds vergrößern?



  • Hallo!
    Ich hab einen ziemlich großen CString, (eine Datei), der in einem Editfeld
    angezeigt werden soll. Offenbar hat dies aber eine Grenze bei 30000 Bytes.
    Ich hab's jetzt so versucht:

    CString puffer = logfile.getStructData();
    
       LocalFree((HLOCAL)SendDlgItemMessage( IDC_EDIT1, EM_GETHANDLE, 0,0 ));
       SendDlgItemMessage( IDC_EDIT1, EM_SETHANDLE, (WPARAM)(HLOCAL)LocalAlloc( LPTR, puffer.GetLength() ), 0);  
       SendDlgItemMessage( IDC_EDIT1, EM_SETLIMITTEXT, (WPARAM)puffer.GetLength() , 0);  
    
        m_strEdit1 = puffer;
    

    So wird aber nichts angezeigt! wenn ich die Allokation weglasse und nur

    m_strEdit1 = puffer.Left(SendDlgItemMessage( IDC_EDIT1, EM_GETLIMITTEXT, 0,0));
    

    nehme, funktioniert's, aber nicht der ganze Text wird angezeigt.
    wie bekomme ich einen größeren Textbuffer?
    Danke im voraus!



  • Nimm ein RichEdit. Das ist zum bearbeiten von längeren Texten besser geeigent als ein Edit 😉



  • och, da will man mal was lernen...aber hauptsache, es geht.
    es geht nämlich! weiß einer, inwiefern Rich edits in Windowsversionen
    unterstützt werden?



  • RichEdit werden auf allen Windows version ab 95 (glaub sogar schon auf 3.11) unterstütz 😉



  • kurz MSDN aufgeschlagen... 3.11 ist nicht dabei 🙂

    Windows XP
    Includes Rich Edit 3.0 with a Rich Edit 1.0 emulator.
    Windows Me
    Includes Rich Edit 1.0 and 3.0.
    Windows 2000
    Includes Rich Edit 3.0 with a Rich Edit 1.0 emulator.
    Windows NT 4.0
    Includes Rich Edit 1.0 and 2.0.
    Windows 98
    Includes Rich Edit 1.0 and 2.0.
    Windows 95
    Includes only Rich Edit 1.0. However, Riched20.dll is compatible with Windows 95 and may be installed by an application that requires it.


Anmelden zum Antworten