假设一个树控件有10个结点。界面上有个comboBox,选项为1-10,当我选择一个数字时,希望树控件的焦点
移动到下标对应的树结点上。比如我选择数字5,那么树控件的第5个结点获取焦点。我知道应该用CTreeCtrl::SelectItem来设置,问题是SelectItem的类型是HTREEITEM,而不是int,简而言之就是无法用下标设置树结点的焦点。那么我怎样用一个int型的数字来去设置树的焦点呢?

解决方案 »

  1.   

    这没有方法吧.
    treectrl不能用下标去索引出来的啊.你可以用别的方法,比如 获取第一个子结点, 获取下一个兄弟结点. 
    这样就能找到了.
      

  2.   

    TVN_SELCHANGING and TVN_SELCHANGED发送这个消息!
      

  3.   

      hItem = (HTREEITEM)SendMessage(hWnd, TVM_GETNEXTITEM,
                                           TVGN_NEXT, (LPARAM)hItem);
      

  4.   


    我并不是要操作点击树,而是combobox,我选一个数字,界面刷新,树控件的焦点移到相应的节点。期间树控件是不作任何操作的。也就是我只能根据combobox得到的这个int型数字来定位树控件的焦点。
      

  5.   

    可以利用CTreeCtrl::SetItemData()将一个int变量与HTREEITEM变量关联起来
      

  6.   

    一个比较偷懒的做法就是在你初始化结点的时候,把当时的HTREEITEM值保存到数组里面来.
    这样也可以通过下标来索引了.