CodeGuru Home VC++ / MFC / C++ .NET / C# Visual Basic VB Forums Developer.com
Results 1 to 1 of 1
  1. #1
    Join Date
    Feb 2003
    Location
    Iasi - Romania
    Posts
    8,234

    Edit Control: How to append text to an edit control?

    Q: Which is the best method to append text to an edit control?

    A: One method is to call 'GetWindowText()' to get the initial text, append the new text to it, then put it back with 'SetWindowText()'.
    This works, but is not practical, especially if the text lenght is huge and the appending is made very frequently.

    A better solution is to put the edit selection at the end of the initial text, then simply replace the selection with the text to append:

    Code:
    void CFoo::AppendTextToEditCtrl(CEdit& edit, LPCTSTR pszText)
    {
       // get the initial text length
       int nLength = edit.GetWindowTextLength();
       // put the selection at the end of text
       edit.SetSel(nLength, nLength);
       // replace the selection
       edit.ReplaceSel(pszText);
    }
    For appending lines in a multiline edit control we must add CR/LF to the text:

    Code:
    void CFoo::AppendLineToMultilineEditCtrl(CEdit& edit, LPCTSTR pszText)
    {
       CString strLine;
       // add CR/LF to text
       strLine.Format(_T("\r\n%s"), pszText);
       AppendTextToEditCtrl(edit, strLine);
    }
    Last edited by ovidiucucu; April 5th, 2006 at 08:11 AM. Reason: "repair" a [color] tag

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  





Click Here to Expand Forum to Full Width

Featured