溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

樹控件使用

發(fā)布時間:2020-07-20 08:00:00 來源:網(wǎng)絡(luò) 閱讀:445 作者:Chinayu2014 欄目:編程語言

初始化樹控件

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); //添加根節(jié)點(diǎn)

	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);//超級管理員節(jié)點(diǎn)

	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);//管理員節(jié)點(diǎn)

	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);//超級管理員節(jié)點(diǎn)
}

點(diǎn)擊樹控件節(jié)點(diǎn),獲取節(jié)點(diǎn)信息

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;
}

創(chuàng)建CImageList給CTreeCtrl控件使用,如下:

void CScale3DCDeviceManageView::CreateImageList()
{
	m_imgList.Create(35, 35, ILC_COLOR32 | ILC_MASK, 0, 2);
	//0.系統(tǒng)
	CBitmap bmp;
	bmp.LoadBitmap(IDB_BITMAP6);
	m_imgList.Add(&bmp,RGB(0xff,0xff,0xff));
	//1.秤
	bmp.DeleteObject();
	bmp.LoadBitmap(IDB_BITMAP2);
	m_imgList.Add(&bmp, RGB(0xf1, 0xf7, 0xff));
	//2.儀表
	bmp.DeleteObject();
	bmp.LoadBitmap(IDB_BITMAP7);
	m_imgList.Add(&bmp, RGB(0xf1, 0xf7, 0xff));
	//3.print
	bmp.DeleteObject();
	bmp.LoadBitmap(IDB_BITMAP8);
	m_imgList.Add(&bmp, RGB(0xf1, 0xf7, 0xff));

	m_treeScale.SetImageList(&m_imgList, TVSIL_NORMAL);//綁定圖標(biāo)集合
}

為指定節(jié)點(diǎn)設(shè)置圖標(biāo),如下:

m_treeScale.SetItemImage(m_treeItemFirstScale, 1, 1);

展開所有節(jié)點(diǎn)

VOID CScale3DCBillDesignView::MyExpandTree(HTREEITEM hTreeItem)
{//展開節(jié)點(diǎn)
	if (!m_treeBillFile.ItemHasChildren(hTreeItem))
	{
		return;
	}
	HTREEITEM hNextItem = m_treeBillFile.GetChildItem(hTreeItem);
	while (hNextItem != NULL)
	{
		MyExpandTree(hNextItem);
		hNextItem = m_treeBillFile.GetNextItem(hNextItem, TVGN_NEXT);
	}
	m_treeBillFile.Expand(hTreeItem, TVE_EXPAND);
}

點(diǎn)擊時某項(xiàng)時會閃爍

m_treeCtrl.SetExtendedStyle(TVS_EX_DOUBLEBUFFER, TVS_EX_DOUBLEBUFFER);


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI