能不能给CTreeList的每添加一项都给个不同的句柄,
删除的时候根据句柄删除CTreeList里的某项.查找删除肯定不适用,因为有的项可能同名

解决方案 »

  1.   

    LVITEM和TVITEM, 每一项都可以关联一个32位的值,这个值是你可以控制的,你完全可以做到两边同步,用这个值作为特征键来查找关于你说的句柄,倒是可以把LVITEM中的这个32位值置成HTREEITEM, 也可以把TVITEM中的32位值置成ListCtrl中的Index, 但这个处理起来有点麻烦,因为涉及到两边item创建的先后顺序问题
      

  2.   

    可以类似这样,点击将一些窗口隐藏,一些显示就行了。
    void CYourDlg::ActivatePage(int nIndex) 
    {
    switch(nIndex)
    {
    case 0:
    m_page1.ShowWindow(SW_HIDE);
    m_page2.ShowWindow(SW_HIDE);
    m_page3.ShowWindow(SW_SHOW);
    m_page4.ShowWindow(SW_HIDE);
    break; case 1:
    m_page1.ShowWindow(SW_HIDE);
    m_page2.ShowWindow(SW_SHOW);
    m_page3.ShowWindow(SW_HIDE);
    m_page4.ShowWindow(SW_HIDE);
    break;
    case 2:
    m_page1.ShowWindow(SW_HIDE);
    m_page2.ShowWindow(SW_HIDE);
    m_page3.ShowWindow(SW_HIDE);
    m_page4.ShowWindow(SW_SHOW);
    break;
    case 3:
    m_page1.ShowWindow(SW_SHOW);
    m_page2.ShowWindow(SW_HIDE);
    m_page3.ShowWindow(SW_HIDE);
    m_page4.ShowWindow(SW_HIDE);
    break;
    default:
    break;
    }
    }
      

  3.   

    在ListCtrl的NMClick事件中: CListCtrl *mList=(CListCtrl *)GetDlgItem(IDC_SETLIST);
    int index=mList->GetNextItem(-1, LVNI_ALL | LVNI_SELECTED);
    ActivatePage(index);
    mList=NULL;
      

  4.   

    属性页里 关联两个变量控制 TreeCtrl 和 ListCtrl  写代码做到同步就行
      

  5.   

    1 给每个项目加上一个唯一的ID
    2 插入项目到项目和树在内存里保存项目到列表项目的序号和树项目句柄的关系列表
    3 插入项目时建立三个关系列表的索引(项目ID,列表ID,树项目句柄)
    4 在从列表删除项目之后,查索引得到该项目在树中的句柄,从树中删除该项目
      

  6.   

    请问如何给TreeCtrl添加唯一的句柄?
      

  7.   

    请问如何给TreeCtrl添加唯一的句柄?