我想知道如何动态显示树形控件里的信息? 我查了一下午资料,反而给搞混了。
1:我现在知道一种方法就是建立以个Dialog,然后派生出一个基于 CTreeView的类,名为 CLeftView 然后在CLeftView::OnInitialUpdate()里实现树形的显示。请问这种方法能根据其他Dialog传来的消息,动态的显示里面的内容吗?能的话该怎么做?
2:能不能在Dialog插入一个tree conctrl 控件,通过另外 Dialog传来的消息,动态的显示树形里面的信息呢? 能的话该怎么做?
3:我今天看到这样一段代码:
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) 

HTREEITEM hItem,hSubItem; 
CTreeCtrl* pTree = (CTreeCtrl*)GetDlgItem(IDC_TREECTR); 
hItem = pTree->InsertItem("好友",TVI_ROOT); 
hSubItem = pTree->InsertItem("好友",hItem); 
hSubItem = pTree->InsertItem("好友",hItem,hSubItem); 
hSubItem = pTree->InsertItem("好友",hItem,hSubItem); hItem = pTree->InsertItem("同事 ",TVI_ROOT,hItem); 
hSubItem = pTree->InsertItem("同事 ",hItem); 
hSubItem = pTree->InsertItem("同事 ",hItem,hSubItem);
} 这个代码是用于上面哪种情况?

解决方案 »

  1.   

    要想动态的往树形控件里添加节点,就只能用代码插入。而代码插入,则是你问题3里的示例,只要InsertItem,就是动态插入节点。
    而在哪里写InsertItem的代码,就是把InsertItem的代码写到一个函数里,要插入的时候,调用这个函数就可以了。
    至于谁去调用这个函数,如果是本窗口(即树形控件的父窗口),则在要动态插入的时候,直接调用这个函数(比如按钮按下),也就是用户调用这个函数;非本窗口(除树形控件父窗口的其他窗口)要在本窗口中动态插入节点,也可以去调用本窗口的这个函数,比较好的做法是向本窗口发送自定义消息,本窗口在收到消息后,由操作系统调用相应的处理函数(即有动态插入代码的函数)。
    这么说够清楚吗?
      

  2.   

    我现在排除第一个方法,直接在Dialog插入一个tree conctrl 控件,首先Dialog要基于什么类呢?(CFormview? CTreeView?)
    如果另外窗口(非本窗口,除树形控件父窗口的其他窗口)要在本窗口中动态插入节点,怎么向本窗口发送自定义消息?并让树控件显示发送来的信息吗?能给出代码吗?我也是刚接触树控件,实在没搞明白.谢谢了.
      

  3.   

    我现在排除第一个方法,直接在Dialog插入一个tree conctrl 控件,首先Dialog要基于什么类呢?(CFormview? CTreeView?) 
    如果另外窗口(非本窗口,除树形控件父窗口的其他窗口)要在本窗口中动态插入节点,怎么向本窗口发送自定义消息?并让树控件显示发送来的信息吗?能给出代码吗?我也是刚接触树控件,实在没搞明白.谢谢了.