资源简介

源代码,自己继承的CTreeCtrl的自定义树形控件类,添加了很多函数方便使用。

资源截图

代码片段和文件信息

// MyTreeCtrl.cpp : 实现文件
//

#include “stdafx.h“
#include “MyTreeCtrl.h“


// CMyTreeCtrl

IMPLEMENT_DYNAMIC(CMyTreeCtrl CTreeCtrl)

CMyTreeCtrl::CMyTreeCtrl()
{

}

CMyTreeCtrl::~CMyTreeCtrl()
{
}


BEGIN_MESSAGE_MAP(CMyTreeCtrl CTreeCtrl)
END_MESSAGE_MAP()



// CMyTreeCtrl 消息处理程序


void CMyTreeCtrl::ListInit(DWORD dwNewstyles)//初始化控件
{
DWORD dwstyles = GetWindowLong(this->m_hWnd GWL_style);
dwstyles |= dwNewstyles;
SetWindowLong(this->m_hWnd GWL_style dwstyles);
//m_tree.SetItemHeight(25);
//m_tree.SetTextColor(RGB(00255));
//m_tree.SetBkColor(RGB(255255220));
}

HTREEITEM CMyTreeCtrl::InsertRoot(TV_INSERTSTRUCT &TCItem CString strTemp)//插入根项
{
TCItem.hParent = TVI_ROOT;
TCItem.hInsertAfter = TVI_LAST;
TCItem.item.mask = TVIF_TEXT|TVIF_PARAM;
TCItem.item.pszText = (LPSTR)(LPCSTR)strTemp;
TCItem.item.lParam = 0;
return this->InsertItem(&TCItem);
}

HTREEITEM CMyTreeCtrl::InsertParent(TV_INSERTSTRUCT TCItem HTREEITEM hRoot CString strTemp int i)//插入父项
{
TCItem.hParent = hRoot;
TCItem.item.pszText = (LPSTR)(LPCSTR)strTemp;
TCItem.item.lParam = (i + 1) * 10;
return this->InsertItem(&TCItem);
}

void CMyTreeCtrl::InsertChild(TV_INSERTSTRUCT TCItem HTREEITEM hCur CString strTemp int i int j)//插入子项
{
TCItem.hParent = hCur;
TCItem.item.pszText = (LPSTR)(LPCSTR)strTemp;
TCItem.item.lParam = (i + 1) * 10 + (j + 1);
this->InsertItem(&TCItem);
}

void CMyTreeCtrl::ExpandTree(HTREEITEM hItem)//展开树中的某一项
{
this->Expand(hItemTVE_EXPAND);
HTREEITEM hChild = this->GetChildItem(hItem);
while (hChild)
{
ExpandTree(hChild);
hChild = this->GetNextSiblingItem(hChild);
}
}

void CMyTreeCtrl::ExpandAllTree()//展开该树的所有项
{
HTREEITEM hRoot = this->GetRootItem();
ExpandTree(hRoot);
}

void CMyTreeCtrl::CollapseTree(HTREEITEM hItem)//收起树中的某一项
{
this->Expand(hItemTVE_COLLAPSE);
HTREEITEM hChild = this->GetChildItem(hItem);
while (hChild)
{
CollapseTree(hChild);
hChild = this->GetNextSiblingItem(hChild);
}
}

void CMyTreeCtrl::CollapseAllTree()//收起该树的所有项
{
HTREEITEM hRoot = this->GetRootItem();
CollapseTree(hRoot);
}

void CMyTreeCtrl::CheckSubItems(HTREEITEM hParentBOOL bCheck)

TreeView_SetCheckState(this->m_hWndhParentbCheck); 
HTREEITEM hItem = TreeView_GetChild(this->m_hWndhParent); 
while(hItem) 

CheckSubItems(hItembCheck); 
hItem = TreeView_GetNextSibling(this->m_hWndhItem); 

}

HTREEITEM CMyTreeCtrl::FindItem(HTREEITEM hItem CString strText)//在某项及其子项中查找内容返回匹配项的HTREEITEM否则返回NULL
{
HTREEITEM hFind;
if(hItem == NULL)
return NULL;
while(hItem != NULL)
{
if(GetItemText(hItem) == strText)
return hItem;
if(ItemHasChildren(hItem))
{
hItem = GetChildItem(hItem);
hFind = FindItem(hItemstrText);
if(hFind)
{
return hFind;
}
else
{
hItem = GetNextSiblingItem(GetParentItem(hItem));
}
}
else
{
hItem = Get

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2012-02-08 10:19  MyTreeCtrl\
     文件        3719  2012-02-08 10:18  MyTreeCtrl\MyTreeCtrl.cpp
     文件         871  2012-02-03 16:01  MyTreeCtrl\MyTreeCtrl.h

评论

共有 条评论