我的treeview和listview是两个不同的类,我的代码
void Cmytreeview::OnSelchangedTree(NMHDR* pNMHDR, LRESULT* pResult) 
{
NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
HTREEITEM hItem = m_tree.GetSelectedItem();
CString str=GetFullPath(hItem);//这个得到路径
mylistview.settext(str);//这个是显示listview的函数,我如果在listview中调用这个就会显示             //出来,但是放到treeview调用就显示不出来啦
*pResult = 0;
}

解决方案 »

  1.   

    你都说了是settext的问题
    是不是应该把这个函数列出来ps:会不会_tree.GetSelectedItem();返回步正确
      

  2.   

    HTREEITEM hItem = m_tree.GetSelectedItem();可以用
    HTREEITEM hItem=pNMTreeView.itemNew.hItem;//来获得
    你要调试一下,看看到底hItem有没有值,str有没有值,还有mylistview是不是指向了列表视图.
      

  3.   

    我调试一下,str有值,那hItem应该有值.mylistview当然指了列表视图,不然会报错的~
    还有settext放到listview就能显示,放到另的类就不能显示,是不是差什么刷新listiview的?
    下面是settext
    CFileFind OneFile;
    CString FName, DirName;
    BOOL BeWorking; 
    GetListCtrl().DeleteAllItems();
    GetListCtrl().SetBkColor(RGB(0,0,0));
    DirName = t+"\\*.*";
    BeWorking = OneFile.FindFile( DirName );
    while ( BeWorking ) {   //BeWorking非零,指找了文件或目录 //查找同级的目录
    BeWorking = OneFile.FindNextFile();
    if ( !OneFile.IsDirectory() && !OneFile.IsDots() )       //如果查找结果是文件
    {
    FName = OneFile.GetFileTitle();
    GetListCtrl().InsertItem(1,FName);//这个显示一列的数据;
    }
    }

    OneFile.Close();
      

  4.   

    void Cmylistview::OnInitialUpdate() 
    {
    CListView::OnInitialUpdate();

    CListCtrl  &m_list = GetListCtrl();      m_list.SetBkColor(RGB(242,251,255));
    m_list.SetTextColor( RGB(12,26,234) );
    m_list.InsertColumn(0 , "报警顺序号",    LVCFMT_LEFT, 80,  0 );
       m_list.ModifyStyle( LVS_TYPEMASK,LVS_REPORT | LVS_SINGLESEL );
    m_list.SetExtendedStyle(  LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES |LVS_EX_HEADERDRAGDROP | LVS_EX_ONECLICKACTIVATE  );
    char str1[255];
    ::GetPrivateProfileString("1","音乐","",str1,255,".//1.ini");
    settext(str1);
    }  
    我这样在自己类中调用就可以显示出来;
    但像最上面那样调用就有错误;晕死~