像资源管理器一样,我如果在我的右边显示当前目录下面一层的目录?
就是我点左边TREEVIEW时我如何能在右边显示这个目录?

解决方案 »

  1.   

    我在左边控件里面已经得到文件列表,但用
    mylistview.GetListCtrl().InsertItem(i-1,FName,i);为LISTVIEW添加值~?
      

  2.   

    在listctrl是插入的是一个结构体,我有一段原代码,是在视图中专门进行插入项的,你看看有没有用:
    //在右列表视图添加文档
    void CDocumentListView::InsertItem(LPWSTR pItemName,LPWSTR pDescription,GUID DocGUID,LPCWSTR DocVersion,long DocNo,long DocStatus,LPWSTR ext_doc)
    {
    int             iActItem;
    LV_ITEM         lvitem;
    LPWSTR strGUID;
    //对GUID进行处理,转化为字符串
    StringFromCLSID(DocGUID,&strGUID);
    lvitem.mask = LVIF_TEXT | LVIF_IMAGE ;
    lvitem.iImage = DocStatus;
    lvitem.iItem=GetListCtrl().GetItemCount();
    lvitem.iSubItem =0;
    lvitem.pszText=pItemName;
    lvitem.lParam=NULL;
    iActItem=GetListCtrl().InsertItem(&lvitem); // insert new item

    lvitem.iItem=iActItem;
    lvitem.iSubItem=1;
    lvitem.pszText =(LPWSTR)DocVersion;
    GetListCtrl().SetItem(&lvitem); //add sub item lvitem.iItem=iActItem;
    lvitem.iSubItem=2;
    WCHAR Buffer[10];
    _ltow(DocNo,Buffer,10);
    lvitem.pszText =Buffer;
    GetListCtrl().SetItem(&lvitem); //add sub item

    lvitem.iItem=iActItem;
    lvitem.iSubItem=3;
    lvitem.pszText =pDescription;
    GetListCtrl().SetItem(&lvitem); //add sub item lvitem.iItem=iActItem;
    lvitem.iSubItem=4;
    lvitem.pszText= strGUID;
    GetListCtrl().SetItem(&lvitem); //add sub item lvitem.iItem=iActItem;
    lvitem.iSubItem=5;
    lvitem.pszText= ext_doc;
    GetListCtrl().SetItem(&lvitem); //add sub item

    }
    另外,要获得当前树结点目录下的文件的话,应该响应树视图中的OnSelChanged()这个消息来进行操作.
      

  3.   

    我用的是两个类
    一个是MYLISTVIEW
    一个是MYTREEVIEW
    我想的是在MYTREEVIEW的OnSelChanged()中操作添加LIST的数据,我已经得到了LISTVIEW的指针,但总是显示不出来~
    代码如下
    Cmylistview mylistview;
    CFileFind OneFile;
    CString FName, DirName;
    BOOL BeWorking; 
    HTREEITEM NewItem; mylistview.GetListCtrl().DeleteAllItems();
    mylistview.GetListCtrl().SetBkColor(RGB(0,0,0));
    DirName = StrPaths+"\\*.*";
    BeWorking = OneFile.FindFile( DirName );
    while ( BeWorking ) {   //BeWorking非零,指找了文件或目录 //查找同级的目录
    BeWorking = OneFile.FindNextFile(); //退出递归时,到了这里!!!
    if ( !OneFile.IsDirectory() && !OneFile.IsDots() )       //如果查找结果是文件
    {
    //向Tree1中添加文件
    FName = OneFile.GetFileTitle();
    // mylistview.GetListCtrl().InsertItem(i,"1");//这两行是我添加LIST的数据代码,但什么都显示不出来~~~
    mylistview.GetListCtrl().InsertItem(i-1,FName,i);
    AfxMessageBox(FName);
    i=i+1;
    }
    }// end of while

    OneFile.Close();
      

  4.   

    mylistview.GetListCtrl().InsertItem(i,"1");//这两行是我添加LIST的数据代码,但什么都显示不出来~~~
    你用的列表框(listbox)的插入项的方法,而在列表视图中用GetListCtrl得到的是clistCtrl,这两个是不同的.楼主再仔细看一下吧.我上面的代码就是这样操作的
      

  5.   

    LV_ITEM         lvitem;     lvitem.iItem=iActItem;
    lvitem.iSubItem=0;
    lvitem.pszText ="fdsafdsa";
    mylistview.GetListCtrl().SetItem(&lvitem);
    我用了你的方法,这几行代码放在TREEVIEW里面,还是什么都没有?连设置颜色都没起作用mylistview.GetListCtrl().SetBkColor(RGB(0,0,0));
    但如果放在listview里面就起作用,为什么?
    郁闷!
      

  6.   

    你要先插入一个记录以后才能添加子项
    iActItem=GetListCtrl().InsertItem(&lvitem); // insert new item
    mylistview.GetListCtrl().SetItem(&lvitem);