CTreeCtrl 控件的一些使用
1. 一些函数(望文生义)
HTREEITEM hItem
m_Tree.GetSelectedItem();
m_Tree.GetRootItem();
m_Tree.ItemHasChildren(hItem);
m_Tree.Expand(m_hSelItem, TVE_EXPAND);
HTREEITEM hItemTemp = m_Tree.GetNextItem(m_hSelItem, TVGN_NEXTVISIBLE);
2. 向下逐行选中
void XXXXDlg::OnButton1()
{
m_hSelItem = m_Tree.GetSelectedItem();
if(m_hSelItem == 0)
{
m_hSelItem = m_Tree.GetRootItem();
m_Tree.Expand(m_hSelItem, TVE_EXPAND);
}
else
{
m_Tree.Expand(m_hSelItem, TVE_EXPAND);
HTREEITEM hItemTemp = m_Tree.GetNextItem(m_hSelItem, TVGN_NEXTVISIBLE);
if(hItemTemp != 0)
{
m_hSelItem = hItemTemp;
}
}
m_Tree.EnsureVisible(m_hSelItem);
m_Tree.SelectItem(m_hSelItem);
m_Tree.SetFocus();
}
3. 向上逐行选中
void XXXXDlg::OnButton2()
{
m_hSelItem = m_Tree.GetSelectedItem();
if(m_hSelItem == 0)
{
m_hSelItem = m_Tree.GetRootItem();
m_Tree.Expand(m_hSelItem, TVE_EXPAND);
}
else
{
HTREEITEM hItemTemp = m_Tree.GetNextItem(m_hSelItem, TVGN_PREVIOUSVISIBLE);
Expand(hItemTemp);
m_hSelItem = m_Tree.GetNextItem(m_hSelItem, TVGN_PREVIOUSVISIBLE);
}
m_Tree.EnsureVisible(m_hSelItem);
m_Tree.SelectItem(m_hSelItem);
m_Tree.SetFocus();
return;
}
void XXXXDlg::Expand(HTREEITEM hItem)
{
if(m_Tree.ItemHasChildren(hItem))
{
m_Tree.Expand(hItem, TVE_EXPAND);
HTREEITEM hChildItem = m_Tree.GetChildItem(hItem);
while(hChildItem)
{
Expand(hChildItem);
hChildItem = m_Tree.GetNextItem(hChildItem, TVGN_NEXT);
}
}
}
4. 新增(插入)元素
itemNew = m_Tree.InsertItem( strItemName, iterParent ); // 返回新增的元素