1. 程式人生 > >樹控件使用

樹控件使用

MFC CTreeView

初始化樹控件

VOID CScale3DCUserManageView::InitTree()
{
	TVINSERTSTRUCT tvInsert;
	tvInsert.hParent = NULL;
	tvInsert.hInsertAfter = NULL;
	tvInsert.item.mask = TVIF_TEXT;
	tvInsert.item.pszText = _T("全部用戶");
	m_treeRoot = m_TreeUser.InsertItem(&tvInsert); //添加根節點

	tvInsert.hParent = m_treeRoot;
	tvInsert.hInsertAfter = TVI_LAST;
	tvInsert.item.mask = TVIF_TEXT;
	tvInsert.item.pszText = _T("超級管理員");
	m_itemSuperUser = m_TreeUser.InsertItem(&tvInsert);
	m_TreeUser.SetItemData(m_itemSuperUser, 0);//超級管理員節點

	tvInsert.hParent = m_treeRoot;
	tvInsert.hInsertAfter = TVI_LAST;
	tvInsert.item.mask = TVIF_TEXT;
	tvInsert.item.pszText = _T("管理員");
	m_itemAmdin = m_TreeUser.InsertItem(&tvInsert);
	m_TreeUser.SetItemData(m_itemAmdin, 0);//管理員節點

	tvInsert.hParent = m_treeRoot;
	tvInsert.hInsertAfter = TVI_LAST;
	tvInsert.item.mask    = TVIF_TEXT;
	tvInsert.item.pszText = _T("普通用戶");
	m_itemUser = m_TreeUser.InsertItem(&tvInsert);
	m_TreeUser.SetItemData(m_itemUser, 0);//超級管理員節點
}

點擊樹控件節點,獲取節點信息

void CScale3DCUserManageView::OnNMClickTree1(NMHDR *pNMHDR, LRESULT *pResult)
{
	// TODO: 在此添加控件通知處理程序代碼
	CPoint pt;
	UINT nFlags;
	GetCursorPos(&pt);
	::ScreenToClient(m_TreeUser.m_hWnd, &pt);
	HTREEITEM hItemSelect = m_TreeUser.HitTest(pt, &nFlags); 
	CString sMsg= m_TreeUser.GetItemText(hItemSelect);

	INT  nData = m_TreeUser.GetItemData(hItemSelect);
	if (1 == nData)
	{
		for (INT i=0;i<m_stAllUserInfo.size();i++)
		{
			if (sMsg == m_stAllUserInfo[i].szName)
			{
				m_EditUserName.SetWindowText(sMsg);
				m_editPassword1.SetWindowText(m_stAllUserInfo[i].szPassWord);
				m_editPassword2.SetWindowText(m_stAllUserInfo[i].szPassWord);
				m_comLimits.SetCurSel(m_stAllUserInfo[i].nIdentity-1);
			}
		}
	}

	if (hItemSelect != NULL)
	{
		if (m_TreeUser.ItemHasChildren(hItemSelect))
		{
			m_TreeUser.Expand(hItemSelect, TVE_EXPAND);
		}
	}
	*pResult = 0;
}


樹控件使用