MFC控件:树形控件(CTreeCtrl)

树形控件划分:

  根节点:所有都收缩后的节点

  节点:    能展开

  叶:  不能展开

  说明: 节点和叶不是绝对的划分,当在对叶添加新下属后,该叶变为节点

树形控件添加:

  节点结构体:  HTREEITEM ,用该结构体声明节点变量

  为控件添加项:  

HTREEITEM InsertItem(
LPCTSTR lpszItem,            //项名
int nImage,                //树视图控件图像列表中的项的图像的索引
int nSelectedImage,           //树视图控件图像列表中的项的所选图像的索引
HTREEITEM hParent = TVI_ROOT,     //插入的项的父级的句柄
HTREEITEM hInsertAfter = TVI_LAST  //新的项之前要插入的项的句柄
);
注:添加项之前先设定根节点,在初始化

树形控件鼠标点击:

  判断鼠标位置

HTREEITEM CMyTreeDlg::GetSelectTree()
{
    CPoint pt;
    GetCursorPos(&pt);//得到当前鼠标的位置
    m_MyTree.ScreenToClient(&pt);//将屏幕坐标转换为客户区坐标
    HTREEITEM tree_Item = m_MyTree.HitTest(pt);//调用HitTest找到对应点击的树节点
    return tree_Item; //返回鼠标位置节点
}

  获取某项文本

  CString GetItemText(HTREEITEM hItem) const;

  获取指定关系项

  HTREEITEM GetNextItem( HTREEITEM hItem, UINT nCode) const;

  nCode标志可以是下列值之一︰TVGN_CARET检索当前所选的项TVGN_CHILD检索由指定的项的第一个子项目hItem参数。TVGN_DROPHILITE检索拖放操作的目标的项TVGN_FIRSTVISIBLE检索第一个可见项TVGN_LASTVISIBLE检索在树中最后一个展开的项目。 这并不检索树视图窗口中可见的最后一项TVGN_NEXT检索下一个同级项TVGN_NEXTVISIBLE检索遵循指定的项的下一个可见项TVGN_PARENT检索指定项的父级TVGN_PREVIOUS检索前面的同级项TVGN_PREVIOUSVISIBLE检索位于指定的项的第一个可见项TVGN_ROOT检索指定的项的一部分的根项的第一个子级项

   获取指定项的父项

  HTREEITEM GetParentItem(HTREEITEM hItem) const;

猜你喜欢

转载自www.cnblogs.com/sepmaple/p/9552957.html