在TreeCtrl中,又很多的函数的参数都是HTREEITEM类型的,这是个什么类型啊,能给我说一下吗?它的内部成员是什么,都有什么作用,谢谢了。我急用的。

解决方案 »

  1.   

    在commctrl.h中,我找到这么一句:typedef struct _TREEITEM FAR* HTREEITEM;
    但是我怎么都找不到关于struct _TREEITEM的定义,于是我在自己用到树形控件的cpp文件中,干脆自己写了一个struct _TREEITEM,我希望每一个结点都包含自己的一组信息,结果竟然能编译通过。运行时,如果不为自己定义的结构体成员变量赋值,则新建结点的时候不会出错,但是只要一出现赋值的语句,则一定出一个莫名其妙的错误,代码如下:struct _TREEITEM
    {
    int a;
    }Cxx::func()
    {
    _TREEITEM *Parent;
    Parent->a=3;//有了这句就出错,没有就正常。
    m_tree.InsertItem("node1",Parent);
    }请大家都来看看,这东西到底怎么用呢?我想在每个结点包含自己的多项信息,可以办到吗?
      

  2.   

    HTREEITEM是树中节点的句柄,也就是一个DWORD值。在树中唯一标识一个节点。它的值对于程序员其实没有什么意义,只是可以通过它找到一个节点,从而取得节点的属性,如GetItemText( HTREEITEM hItem ) ;或对节点进行某些操作,如删除DeleteItem( HTREEITEM hItem );
      

  3.   

    如在每个结点包含自己的多项信息,使用SetItemData( HTREEITEM hItem, DWORD dwData );dwData保存自定义结构的指针。struct SA
    {
      DWORD dw1;
      DWORD dw2;
    }SA* pSA = new SA;m_tree.SetItemData(hItem, (DWORD)pSA);还有就是别忘了删除节点时删除这个指针。SA* pSA = (SA*)m_tree.GetItemData(hItem);
    if(pSA) delete pSA;m_tree.DeleteItem(hItem);
      

  4.   

    HTREEITEM其实就是CTreeCtrl控件的项句柄,用来标识项
      

  5.   

    Handle to an item in a tree-view control.
      

  6.   

    _TREEITEM *Parent;
    Parent->a=3;
    ------------------------------------------------
    Parent 为nullParent->a = 3 肯定运行出错了