使用多个线程来加载的话,用户在使用的过程中会感觉到视图的刷新,也不合适。
就像我们的文件夹目录,一开始只显示C D E F几个盘,当你点击了前面的加号,就现在该磁盘下面的子文件夹。主要是如果还没有加载子节点的话,父节点前面是没有加号的,用户会以为到头了。

解决方案 »

  1.   

    添加控件事件  ON_NOTIFY(TVN_ITEMEXPANDING, IDC_TREELIST, &CVIS_ClientDlg::OnTvnItemexpandingTreelist)
    void CVIS_ClientDlg::OnTvnItemexpandingTreelist(NMHDR *pNMHDR, LRESULT *pResult)
    {
    LPNMTREEVIEW pNMTreeView = reinterpret_cast<LPNMTREEVIEW>(pNMHDR);
    // TODO: 在此添加控件通知处理程序代码
    HTREEITEM hcur = pNMTreeView->itemNew.hItem;
    if (m_list.GetParentItem(hcur) == NULL)
    {
    if (pNMTreeView->action == TVE_EXPAND)   //节点展开 +变-
    {
    ......
    }
    else
    {
    if (pNMTreeView->action == TVE_COLLAPSE)    //节点关闭 -变+
    {
    ........
    }
    }
    }
    *pResult = 0;
    }希望对你有用
      

  2.   

    thanks 下班了试试。。我先收藏下
      

  3.   

    非常感谢 9楼 taogx1824_126_com 我遇到相同问题,看了你的回答,现在解决了