MFC TreeCtrl 控件(二):顯示特性設置 顏色、圖標、完全展開


    MFC 的 TreeCtrl 樹形控件提供了設置背景色、文本色及線條色的接口,另外,通過遞歸查找,還可設置指定節點的圖標和完整展開節點。在對話框初始化函數中額外添加代碼:

	m_userTreeCtrl.SetTextColor(RGB(0,0,220));//設置tree的背景色*/	
	m_userTreeCtrl.SetBkColor(RGB(230,230,230));//設置tree的背景色*/
	// 設置TreeCtrl線條顏色
	m_userTreeCtrl.SetLineColor(RGB(0, 150, 220));
	ExpandAllNode(m_userTreeCtrl.GetRootItem(), m_userTreeCtrl); // 展開所有節點
	// 載入圖標,設置指定名稱的節點的圖標
	HICON hIconOther = theApp.LoadIcon(IDI_VIDEO);
	m_imageList.Add(hIconOther);
	SetTreeNodeIcon(m_userTreeCtrl.GetRootItem(), m_userTreeCtrl, _T("測試用戶13"));

     其中的兩個函數爲:

void COnsitevideoDlg::SetTreeNodeIcon(HTREEITEM hStartItem, CTreeCtrl& treeCtrl, CString csNodeName)
{
	HTREEITEM hChild = treeCtrl.GetChildItem(hStartItem);
	while(hChild)
	{
		if(csNodeName == treeCtrl.GetItemText(hChild))
		{
			treeCtrl.SetItemImage(hChild, 3, 3);
			return ;
		} else  {
			SetTreeNodeIcon(hChild, treeCtrl, csNodeName);
			hChild = treeCtrl.GetNextSiblingItem(hChild);
		}
	}
}


void COnsitevideoDlg::ExpandAllNode(HTREEITEM hItem, CTreeCtrl& treeShow)
{
	HTREEITEM hChild = treeShow.GetChildItem(hItem);
	while(hChild)
	{
		treeShow.Expand(hItem, TVE_EXPAND);
		ExpandAllNode(hChild, treeShow);
		hChild = treeShow.GetNextSiblingItem(hChild);
	}
}
    效果截圖如下:

TreeCtrl控件截圖

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章