Class Myfile
{public:
    CStringArray m_Array;
}
我打开myfile时,如何用CEditView显示CStringArray内容??

解决方案 »

  1.   

    用CEditView::GetEditCtrl()得到编辑控件,用CStringArray::GetAt()循环得到CString类型字符串,用CEditCtrl::SetSel()定位到编辑框尾部,用CEditCtrl::Relpace()插入字符串。不过,为什么不一次读入CString然后SetWindowText()来显示?如果文件不是太大的话。
      

  2.   

    CMyEditView::OnInitialUpdate()
    {
       // get the edit control and set some initial properties for it
       CEdit& theEdit = GetEditCtrl();
     
       CString strRes = "";
       for(int i=0; i<m_Array.GetSize(); i++)
       {
    strRes += m_Array[i] + "\r\n";
       }
       theEdit.SetWindowText(strRes); 
    }
      

  3.   

    哪我编辑后,怎样保存到m_Array内??
      

  4.   

    你编辑以后总有在哪边更新的按钮动作的吧?可以把你更新过的item做个标记,到时候只要setat那些更新过得数据好了,不用全部更新
      

  5.   

    更新操作我放在onchange信息内处理
    关键怎样从CEdit内取出一行一行的值回写到 m_array 内
      

  6.   

    CEditView::GetEditCtrl()CEdit::GetLineCount()
    for(...)
    {
    CEdit::GetLine(line, buffer)
    CStringArray::AddString(buffer)
    }这样可以吗?
      

  7.   

    int i;
    CString MyStr;
    CEdit& theEdit = GetEditCtrl();
    WCHAR buf[256];
    memset(buf,0,512);
    for (i=0;i<theEdit.GetLineCount();i++)
    {
    theEdit.GetLine(i,buf,255);
    MyStr = buf;
    GetDocument()->m_GclFile.m_Config.m_Context.Add(_T(MyStr));
    }
    我也试了,用这个方法不行?
      

  8.   

    int i;
    CString MyStr;
    CEdit& theEdit = GetEditCtrl();
    WCHAR buf[256];
    memset(buf,0,512);
    for (i=0;i<theEdit.GetLineCount();i++)
    {
    theEdit.GetLine(i,buf,255);
    MyStr = buf;//单步调试看MyStr是否有值
    GetDocument()->m_GclFile.m_Config.m_Context.Add(_T(MyStr));
    }