我将视图窗口的客户区分栏,为了在左边的分栏得到导入的文件夹里的文件名,在CMainFrame重载OnFileOpen()添加了如下代码,但是视图窗口的左边依然没有显示,为什么呢?求高人指教
        while(IsFinded)
{
IsFinded=(BOOL)fileFind.FindNextFile();
//CString pPath;
pPath = fileName +L"\\";
pPath += fileFind.GetFileName();//返回指定路径的最后一个文件或文件夹
v_FileName.insert(v_FileName.end(),pPath);
CListView *pLeftview;
pLeftview = (CListView *)m_wndSplitter.GetPane(0,0);
                //得到listview的指针
CListCtrl& leftCtrl = pLeftview->GetListCtrl();
                
leftCtrl.ModifyStyle(LVS_REPORT, LVS_LIST);
                leftCtrl.InsertItem(nIndex,fileFind.GetFileName());
                nIndex++;
}

解决方案 »

  1.   

    调试了一下,在call stack 里发现了两条和我自己写的代码有关的信息
    > MobAni.exe!std::vector<ATL::CStringT<wchar_t,StrTraitMFC_DLL<wchar_t,ATL::ChTraitsCRT<wchar_t> > >,std::allocator<ATL::CStringT<wchar_t,StrTraitMFC_DLL<wchar_t,ATL::ChTraitsCRT<wchar_t> > > > >::operator[](unsigned int _Pos=4294967295)  行757 + 0x2e 字节 C++  MobAni.exe!CLeftView::OnLButtonDblClk(unsigned int nFlags=1, CPoint point={...})  行70 + 0x15 字节 C++但是还是不明白出了什么问题
      

  2.   

    leftCtrl.ModifyStyle(LVS_REPORT, LVS_LIST);
    在while中?
      

  3.   

    在CMainFrame中初始化一次:BOOL CMainFrame::InitTree(void)
    {
    // get LeftTree
    CLeftView * pLeft=GetLeftPane();//pMain->
    CTreeCtrl&  LeftTree=pLeft->GetTreeCtrl();
    // set tree style
    LONG NewStyle=GetWindowLong(LeftTree,GWL_STYLE);
    NewStyle=NewStyle|TVS_HASBUTTONS|TVS_HASLINES|TVS_INFOTIP|
     TVS_LINESATROOT|TVS_SHOWSELALWAYS|TVS_EDITLABELS;
    SetWindowLong(LeftTree,GWL_STYLE,NewStyle);
    // 
    CString dir; 
    BOOL dfend = FALSE;
    CBitmap bitmap;
    UINT nID;
    // images 
    ImagelistList.Create(16,16,ILC_COLOR8 | ILC_MASK,6,4); 
    //
    Imagelist.Create(16,16,ILC_COLOR8 | ILC_MASK,6,4); 
    for (nID=IDB_DIR;nID<=IDB_802D;nID++) //0-9  
    {
    bitmap.LoadBitmap(nID);
    Imagelist.Add(&bitmap,(COLORREF)0xFFFFFF);
    bitmap.DeleteObject();
    } LeftTree.SetImageList(&Imagelist,TVSIL_NORMAL);
    return TRUE;
    }