我有一个字符串数组str[5],现在用一个for循环将数组内容输出到只读edit编辑框控件中现希望每行只显示一个数组内容,代码如下:for(int i=0;i<5;i++)
{
   CEdit* pEdit=(CEdit*)OwnWnd->m_dlg.GetDlgItem(IDC_EDIT_DISPLAY);
   pEdit-> SetWindowText(str[i]+"\r\n");
   g_pView->UpdateData(FALSE);
}但结果是只输出数组的最后一项。请问这是为什么?

解决方案 »

  1.   

    因为每次SetWindowText都会把之前显示的内容清空,只显示新设置的。
    可以把要显示的一次性生成一个str,然后调用一次SetWindowText。
      

  2.   


    CString strView = "";
    for(int i=0;i <5;i++) 

      CEdit* pEdit=(CEdit*)OwnWnd->m_dlg.GetDlgItem(IDC_EDIT_DISPLAY); 
      strView.Append(str[i]+"\r\n");
      g_pView->UpdateData(FALSE); 
    } pEdit-> SetWindowText(strVies);
      

  3.   

    搂主没有理解SetWindowText(str) 作用
    每次调用相当于先把原来内容擦掉,再把str的内容set到窗体上面去。