重载listctrl。搜索指定目录下的所有子目录,再在listctrl上插入节点显示目录层次,我以前做了一个项目,其中就有这样的一个listctrl,你要的话留下Email,我发给你

解决方案 »

  1.   

    [email protected]
    谢谢,非常感谢!!
      

  2.   

    先给你这个吧,这是弹出单独的小对话框,让用户选择路径,这可不是我编的。我编的类这几天内会发给你(得改改,让它更通用)。
    BROWSEINFO bi;
    ITEMIDLIST* pidl;
    char Dir[_MAX_PATH];
     
    bi.hwndOwner  = this->m_hWnd;
    bi.pidlRoot   = NULL;
    bi.pszDisplayName = Dir;
    bi.lpszTitle  = "Please Select the Directory";///标题
    bi.ulFlags   = BIF_RETURNONLYFSDIRS;/*| BIF_USENEWUI;*/
    bi.lpfn    = NULL;
    bi.lParam   = 0;
    bi.iImage   = 0;
    OleInitialize(NULL);
    pidl = SHBrowseForFolder(&bi);
    if ( pidl == NULL )
    Dir[0] = 0;
    if ( !SHGetPathFromIDList(pidl,Dir) )
    Dir[0] = 0;
    if(Dir[0] != 0)
    {
    CString selectdir=dir;/////得到选择的目录名
    }