資源簡介
源代碼,自己繼承的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
- 上一篇:arduino控制57步進電機
- 下一篇:聚英調試助手 V1.3.zip
評論
共有 條評論