我做了个像windows资源管理器一样的界面,是单文档的,我用了分隔条,左边是树形视图(CTreeView),右边是列表视图(CListView),我如何实现在树形视图中选择一个节点,列表视图随之改变?主要是在不相关的二个类中传递信息?谢谢

解决方案 »

  1.   

    在树视图中定义一个列表视图对象比如:CMyListView m_pView;你就可以在TreeView中直接使用这个m_pView对象进行列表视图的操作了比如,ListView中有一个函数ViewInfo();你在树视图的响应选择节点操作时,就可以m_pView.ViewInfo()就可以了。当然,这个函数需要一些参数传过去
      

  2.   

    是,处理CTreeView的OnClick,传递参数给CListView,CListView根据需要改变
      

  3.   

    samyoung 我定义了有什么用呢,它也不与右边的LISTView关联起来.这样我是能操作定义的视图,但是右边的视图怎么办,且我是有分隔条的
      

  4.   

    处理CTreeView的OnClick
    然后通过LISTView的指针操作ListView
      

  5.   

    我觉得还是通过消息传参数给CListView,让CListView自己做相应操作比较清楚。
      

  6.   

    CMyListView* m_pMyView;
    //初始化
    m_pMyView=NULL;在listview里面定义函数
    ViewItemInfo(int nItemStyle,_variant_t vItemValue,_variant_t vParentValue);
    其中nItemStyle可以定义为item类型,自己定义嘛,后面的参数是我随便定义的,根据你的需要,你可以定义一些操作需要的参数。在treeview的消息响应函数
    OnItemchanged()里面,调用这个函数ViewItemInfo
    具体的操作,你可以在这个函数里面进行。
      

  7.   

    获得右边View的指针就什么都好办了CMainFrame* pFrame = (CMainFrame*)AfxGetMainWnd();
    CRightView* pRightView = (CRightView*)(pFrame->m_wndSplitter.GetPane(0,1));pRightView->DoSth();
      

  8.   

    当树形控件的当前选中项目发生改变时,会发送TVN_SELCHANGING通知;改变结束时,会发送TVN_SELCHANGED通知。
      

  9.   

    处理CTREE的事件,操作右边的VIEW
      

  10.   

    GetPanebtw,,资源管理器左右根本不是splitterwndis dialogbar
      

  11.   

    TVN_SELCHANGED消息中.....要不我发给你一个吧.