我现在想隐藏树形控件已插入的结点,该怎么办?

解决方案 »

  1.   

    比如某个节点itemparent下有一个节点itemtemp,itemtemp只是存储一些数据,你不想显示。
    那么你可以自己定义一个list,用来存储你的不想显示的节点信息,比如list.Add(itemtemp.text)
    然后用
    BOOL SetItemData(
       HTREEITEM hItem,
       DWORD_PTR dwData 
    );
    来将这个list关联到itemparent。最后删除你的itemtemp,查询节点的时候你自己去查询和这个节点关联的list。不知道是否合适楼主的要求?
      

  2.   

    你的意思就是给节点关联一个你自己定义的数值吧?如果是这样,不用你说得那么复杂啊
    你插入一个节点后,直接调用
    BOOL SetItemData(
       HTREEITEM hItem,
       DWORD_PTR dwData 
    );
    或者在插入节点的时候调用
    HTREEITEM InsertItem(
    UINT nMask,
    LPCTSTR lpszItem,
    int nImage,
    int nSelectedImage,
    UINT nState,
    UINT nStateMask,
    LPARAM lParam,
    HTREEITEM hParent,
    HTREEITEM hInsertAfter );
    然后把其中nMask=TVIS_TEXT|TVIS_PARAM
    lpszItem参数表示节点显示的文本内容,而lParam参数指定你要赋给节点的值
    函数就可以为这个节点指定一个你想要的值,然后再需要的时候使用GetItemData就可以取得与节点关联的值,即可
      

  3.   

    如果只是不想显示的话。
    重载WM_PAINT,然后在OnPaint()这个函数里面设置一个变量,如果要隐藏内容的话,什么都不干,直接返回就可以了。