我遍历一个目录
想在Edit控件中,显示每个目录名,
但是只能显示最后一个
代码如下,大家帮忙改改 :do
{
bLastFile = !ff.FindNextFile();
strPath = ff.GetFilePath();
strPath+=0x0d;
strPath+=0x0a;
TRACE("strPath = %s\n", strPath);
UpdateData(FALSE);
Sleep(500);
m_Edit.LineScroll(m_Edit.GetLineCount(), 0);
}while( !bLastFile);

解决方案 »

  1.   

    strPath+=0x0d;这句前加个断点,判断是否在每次循环可以得到正确的path?
      

  2.   

    strPath = ff.GetFilePath();
    应该为 strPath += ff.GetFilePath();吧?
      

  3.   

    strPath = ff.GetFilePath();
    每次都是 获取当前文件路径,当然只有最后一个文件喽!
    strPaht += ff.GetFilePath();
      

  4.   

    没有人解决啊
    strPath +=ff.GetFilePath()
    这样会由于目录过长导致CString 的缓冲区宜出的我想要的是得到一个目录就在Edit中田加一行
      

  5.   

    int len = GetWindowTextLength();
             CEdit* pedit=(CEdit*)GetDlgItem(IDC_EDIT);
    pedit->SetSel(len,len);
    pedit->ReplaceSel(strPath);//试试这个
      

  6.   


    WIN32_FIND_DATA data;
    HANDLE hDirectory = FindFirstFile("C:\\*",&data); if ( hDirectory == INVALID_HANDLE_VALUE) {
    //Can't find any file
    return;
    }
    m_strPath = "";//m_strPath is variable of your Edit.
    while (FindNextFile(hDirectory,&data)) {
    if ( FILE_ATTRIBUTE_DIRECTORY == data.dwFileAttributes) {
    m_strPath +=data.cFileName;
    m_strPath += "\r\n";
    }
    }
    UpdateData(FALSE);
      

  7.   

    第一个不是都说了?
    CEdit要设为MultiLine(看此控件的属性)
    不然只能显示一行
      

  8.   

    为什么不拼好字符串在显示到Edit中,这样即快又简单,顶多多吃你几k Memory
      

  9.   

    可能CEdit还需要“want return”属性
      

  10.   

    采用triggerd(有点着急) 的方法已经解决,谢谢大家了~!
      

  11.   

    应该先定义一个临时CString,将你要显示的内容记录下来,最后再赋给EDIT,如果怕CString溢出,可以定义一个字符数组。
    你现在虽然赋了多次值,但EDIT每次都是把原来的清除后又重新添加,所以总是剩下最后一个。