有一个程序在CEdit里面显示 5*10 矩阵,使用SetWindowText()往里面添加显示的内容现在发现有一个问题,就是SetWindowText()会把前面的内容覆盖掉由于这个矩阵的元素是逐步产生的,每产生一个就显示在CEdit控件里面,前面产生的内容不能被覆盖。我现在想到的方法就是将计算出来的元素放到一个数组,然后构建一个CString对象
然后使用
CString::Format("%d%d%d%d%d%d%d%d%d%d\r\n%d%d%d%d%d%d%d%d%d%d\r\n%d%d%d%d%d%d%d%d%d%d\r\n%d%d%d%d%d%d%d%d%d%d\r\n%d%d%d%d%d%d%d%d%d%d\r\n",a[0],a[1].a[2]……)
接着使用SetWindowsText(CString 对象)来显示内容我觉得这种方法非常麻烦,如果以后的矩阵不是5*10,而是10*50,那么将修改很多内容
有没有一个较好的方法解决这个问题?

解决方案 »

  1.   

    CString str="new string";
    int nLen=m_edit1.GetWindowTextLength ();
    m_edit1.SetFocus();
    m_edit1.SetSel(nLen, nLen);
    m_edit1.ReplaceSel (str);这样就不会覆盖
      

  2.   

    下面在文本框最后追加"abc"  
    int nLength=m_edit.SendMessage(WM_GETTEXTLENGTH);  
    m_edit.SetSel(nLength,  nLength);  
    m_edit.ReplaceSel("abc");
      

  3.   

    也可以SetWindowText之前先将Edit的数据得到,然后和后形成的字符串形成一个新的字符串
      

  4.   

    对的。。用setsel在字符串最后追加数据同意zhucde老大