本文整理汇总了C++中GetChildItem函数的典型用法代码示例。如果您正苦于以下问题:C++ GetChildItem函数的具体用法?C++ GetChildItem怎么用?C++ GetChildItem使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了GetChildItem函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: GetRootItem
/*
================
CPathTreeCtrl::FindItem
Find the given path in the tree.
================
*/
HTREEITEM CPathTreeCtrl::FindItem( const idStr &pathName ) {
int lastSlash;
idStr path, tmpPath, itemName;
HTREEITEM item, parentItem;
parentItem = NULL;
item = GetRootItem();
lastSlash = pathName.Last( '/' );
while( item && lastSlash > path.Length() ) {
itemName = GetItemText( item );
tmpPath = path + itemName;
if ( pathName.Icmpn( tmpPath, tmpPath.Length() ) == 0 ) {
parentItem = item;
item = GetChildItem( item );
path = tmpPath + "/";
} else {
item = GetNextSiblingItem( item );
}
}
for ( item = GetChildItem( parentItem ); item; item = GetNextSiblingItem( item ) ) {
itemName = GetItemText( item );
if ( pathName.Icmp( path + itemName ) == 0 ) {
return item;
}
}
return NULL;
}
开发者ID:BielBdeLuna,项目名称:StormEngine2,代码行数:38,代码来源:CPathTreeCtrl.cpp
示例2: SetRedraw
void CDirectoryTreeCtrl::OnTvnItemexpanding(NMHDR *pNMHDR, LRESULT *pResult)
{
CWaitCursor curWait;
SetRedraw(FALSE);
LPNMTREEVIEW pNMTreeView = reinterpret_cast<LPNMTREEVIEW>(pNMHDR);
HTREEITEM hItem = pNMTreeView->itemNew.hItem;
// remove all subitems
HTREEITEM hRemove = GetChildItem(hItem);
while(hRemove)
{
DeleteItem(hRemove);
hRemove = GetChildItem(hItem);
}
// get the directory
CString strDir = GetFullPath(hItem);
// fetch all subdirectories and add them to the node
AddSubdirectories(hItem, strDir);
SetRedraw(TRUE);
Invalidate();
*pResult = 0;
}
开发者ID:BackupTheBerlios,项目名称:nextemf,代码行数:25,代码来源:DirectoryTreeCtrl.cpp
示例3: network
/* #FN#
Pushes down and selects an item one level at a time until either we
can't find anymore parts of the path, or we've finished searching
Doesn't work on network (UNC) paths (Could search NETHOOD when
prefix is \\) */
void
/* #AS#
Nothing */
CShellTree::
TunnelTree(
LPCSTR lpszPath /* #IN# */
)
{
char szSearchPath[ MAX_PATH + 1 ];
BOOL bFound = FALSE;
int i = 0;
HTREEITEM hTopLevelItem;
HTREEITEM hItem;
if( (hTopLevelItem = GetRootItem()) )
{
do /* Enumerate the top level items */
{
if( Expand( hTopLevelItem, TVE_EXPAND ) )
{
hItem = GetChildItem( hTopLevelItem );
while( hItem )
{
for( ; i < (int)strlen( lpszPath ) && lpszPath[ i ] != '\\'; i++ )
szSearchPath[ i ] = lpszPath[ i ];
szSearchPath[ i++ ] = '\0';
/* Add ending backslash to drive name */
if( strlen( szSearchPath ) == 2 && szSearchPath[ 1 ] == ':' )
strcat( szSearchPath, "\\" );
if( SearchTree( hItem, szSearchPath ) )
{
hItem = GetSelectedItem();
if( Expand( hItem, TVE_EXPAND ) )
{
/* Get first leaf of the new bunch */
hItem = GetChildItem( hItem );
}
bFound = TRUE;
}
else
break;
/* Append a folder delimiter */
szSearchPath[ i - 1 ] = '\\';
}
/* The path has not been found, reset the searching "engine" */
if( !bFound )
{
Expand( hTopLevelItem, TVE_COLLAPSE );
i = 0;
}
}
}
while( !bFound && (hTopLevelItem = GetNextSiblingItem( hTopLevelItem )) );
}
} /* #OF# CShellTree::TunnelTree */
开发者ID:HolgerGuenther,项目名称:Atari800Win-PLus,代码行数:65,代码来源:ShellTree.cpp
示例4: GetRootItem
void CCJShellTree::TunnelTree(CString strFindPath)
{
HTREEITEM subNode = GetRootItem();
CString szPathHop;
char drive[_MAX_DRIVE];
char dir[_MAX_DIR];
char fname[_MAX_FNAME];
char ext[_MAX_EXT];
char delimiter[]="\\";
m_bRefresh = false;
if(!m_shell.Exist(strFindPath))
{
if (strFindPath.GetLength() == 3)
{
}
else
{
MessageBox(strFindPath,_T("Folder not found"),MB_ICONERROR);
return;
}
}
if(strFindPath.ReverseFind(_T('\\')) != strFindPath.GetLength()-1)
{
strFindPath += _T("\\");
}
m_shell.SplitPath(strFindPath,drive,dir,fname,ext);
//search the drive first
szPathHop=drive;
subNode=GetChildItem(subNode);
if(subNode)
{
if(SearchTree(subNode,szPathHop, CCJShellTree::type_drive))
{
SetRedraw(FALSE);
//break down subfolders and search
char *p=strtok(dir,delimiter);
while(p)
{
subNode = GetSelectedItem();
Expand(subNode, TVE_EXPAND);
subNode = GetChildItem(subNode);
if(SearchTree(subNode,p,CCJShellTree::type_folder))
p=strtok(NULL,delimiter);
else
p=NULL;
}
SetRedraw();
}
}
}
开发者ID:noindom99,项目名称:repositorium,代码行数:58,代码来源:CJShellTree.cpp
示例5: DeleteItemEx
//******************************************
// 删除一个结点分枝,如果该结点的父结点没有其它子节点则一起删除
//******************************************
BOOL DeleteItemEx(HSTREEITEM hItem)
{
if(GetChildItem(hItem)) return FALSE;
while(hItem && !GetChildItem(hItem))
{
HSTREEITEM hParent=GetParentItem(hItem);
DeleteItem(hItem);
hItem=hParent;
}
return TRUE;
}
开发者ID:azunite,项目名称:duiengine,代码行数:14,代码来源:stree.hpp
示例6: GetChildItem
BOOL CTreeCtrlEx::OnItemexpanding(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
if ( pNMTreeView->action == TVE_COLLAPSE )
{
HTREEITEM hItem = GetChildItem( pNMTreeView->itemNew.hItem );
while ( hItem )
{
if ( GetItemState( hItem, TVIS_SELECTED ) & TVIS_SELECTED )
SetItemState( hItem, 0, TVIS_SELECTED );
// Get the next node: First see if current node has a child
HTREEITEM hNextItem = GetChildItem( hItem );
if ( !hNextItem )
{
// No child: Get next sibling item
if ( !( hNextItem = GetNextSiblingItem( hItem ) ) )
{
HTREEITEM hParentItem = hItem;
while ( !hNextItem )
{
// No more children: Get parent
if ( !( hParentItem = GetParentItem( hParentItem ) ) )
break;
// Quit when parent is the collapsed node
// (Don't do anything to siblings of this)
if ( hParentItem == pNMTreeView->itemNew.hItem )
break;
// Get next sibling to parent
hNextItem = GetNextSiblingItem( hParentItem );
}
// Quit when parent is the collapsed node
if ( hParentItem == pNMTreeView->itemNew.hItem )
break;
}
}
hItem = hNextItem;
}
}
if (m_Parent)
m_Parent->SendMessage(MB_TV_MSG, (WPARAM) pNMHDR, (LPARAM)pResult);
*pResult = 0;
return FALSE; // Allow parent to handle this notification as well
}
开发者ID:mikemakuch,项目名称:muzikbrowzer,代码行数:53,代码来源:TreeCtrlEx.cpp
示例7: beginResetModel
void CModelMacro::ChangeToIOAnalogData()
{
beginResetModel();
if (rootItem)
{
rootItem->ClearChildren();
}
GetChildItem(rootItem, CGrammarManagerFactory::STR_MACRO_AIN);
GetChildItem(rootItem, CGrammarManagerFactory::STR_MACRO_AOUT);
endResetModel();
}
开发者ID:6VV,项目名称:TeachingBox,代码行数:14,代码来源:CModelMacro.cpp
示例8: GetParentItem
void CCheckBoxTree::vSetCheckParent(HTREEITEM hItem)
{
if(hItem == nullptr)
{
return;
}
HTREEITEM hParentItem = GetParentItem(hItem);
HTREEITEM hChildItem;
BOOL bAllChecked = TRUE;
if( ItemHasChildren(hParentItem))
{
hChildItem = GetChildItem(hParentItem);
while(hChildItem)
{
if(!bIsItemChecked(hChildItem))
{
bAllChecked = FALSE;
break;
}
hChildItem = GetNextSiblingItem(hChildItem);
}
}
BOOL fCheck=0;
vSetCheck(hParentItem, bAllChecked);
vSetCheckParent(hParentItem);
vSetCheckChildren(hParentItem,!fCheck);
}
开发者ID:ETAS-Nithin,项目名称:busmaster,代码行数:28,代码来源:CheckBoxTree.cpp
示例9: Update
void CLibraryFolderCtrl::Update(DWORD nUpdateCookie)
{
CList< CLibraryFolder* > pAlready;
for ( HTREEITEM hItem = GetChildItem( m_hRoot ) ; hItem ; )
{
HTREEITEM hNext = GetNextSiblingItem( hItem );
CLibraryFolder* pFolder = (CLibraryFolder*)GetItemData( hItem );
if ( LibraryFolders.CheckFolder( pFolder ) )
{
Update( pFolder, hItem, NULL, nUpdateCookie, FALSE );
pAlready.AddTail( pFolder );
}
else
{
DeleteItem( hItem );
}
hItem = hNext;
}
for ( POSITION pos = LibraryFolders.GetFolderIterator() ; pos ; )
{
CLibraryFolder* pFolder = LibraryFolders.GetNextFolder( pos );
if ( pAlready.Find( pFolder ) == NULL )
{
Update( pFolder, NULL, m_hRoot, nUpdateCookie, FALSE );
}
}
}
开发者ID:ivan386,项目名称:Shareaza,代码行数:33,代码来源:CtrlSharedFolder.cpp
示例10: GetChildItem
std::vector<CTest*> CTestSelectionTree::getSelectedTests()
{
std::vector<CTest*> selectedTestsVect;
HTREEITEM hCurrent = GetChildItem(hRoot);
while (hCurrent != NULL)
{
bool bChecked=GetCheck(hCurrent);
if(bChecked)
{
/*
AfxMessageBox(_T("Item checked =")+GetItemText(hCurrent));
*/
CTest* pTest=(CTest*) GetItemData(hCurrent);
selectedTestsVect.push_back(pTest);
}
// Try to get the next item
hCurrent = GetNextItem(hCurrent, TVGN_NEXT);
//
}
return selectedTestsVect;
}
开发者ID:geforce42376,项目名称:easyprofiler,代码行数:26,代码来源:TestSelectionPane.cpp
示例11: SelectItem
/*
EBaseItem* EXTreeCtrl::GetBaseItem(HTREEITEM hTi)
{
if(!hTi)
{
// First see if an item is active
if(m_hActiveItem)
{
hTi = m_hActiveItem;
SelectItem(hTi);
m_hActiveItem = 0;
}
else
{
if(m_bContextMenuActivated)
{
hTi = GetRootItem();
}
else
{
// Try to get active item
hTi = GetSelectedItem();
}
}
if(!hTi)
{
hTi = GetRootItem();
}
}
if(hTi)
{
return reinterpret_cast < EBaseItem * > (GetItemData(hTi));
}
return NULL;
}
*/
void EXTreeCtrl::ExpandTree(HTREEITEM hItem,bool bIncludeSub)
{
if(hItem == NULL)
hItem = GetRootItem();
if(hItem)
{
Expand(hItem,TVE_EXPAND);
if(bIncludeSub)
{
HTREEITEM ChildItem = GetChildItem(hItem);
while(ChildItem != NULL)
{
Expand(ChildItem,TVE_EXPAND);
ExpandTree(ChildItem,true);
ChildItem = GetNextItem(ChildItem,TVGN_NEXT);
}
}
}
/*
if(hItem == NULL)
return;
Expand(hItem,TVE_EXPAND);
HTREEITEM ChildItem = GetChildItem(hItem);
do
{
Expand(ChildItem,TVE_TOGGLE);
}
while( (ChildItem = GetNextSiblingItem( ChildItem )) != NULL );
*/
}
开发者ID:sosoayaen,项目名称:DescentBoardGameTools,代码行数:72,代码来源:EXTreeCtrl.cpp
示例12: GetChildItem
//-----------------------------------------------------------------------------
// Purpose: Returns the tree item in the given subtree associated with the given
// visgroup, NULL if none.
//-----------------------------------------------------------------------------
HTREEITEM CGroupList::FindVisGroupItemRecursive(HTREEITEM hItem, CVisGroup *pVisGroup)
{
if (hItem)
{
CVisGroup *pVisGroupCheck = (CVisGroup *)GetItemData(hItem);
if (pVisGroupCheck == pVisGroup)
{
return hItem;
}
if (ItemHasChildren(hItem))
{
HTREEITEM hChildItem = GetChildItem(hItem);
while (hChildItem != NULL)
{
HTREEITEM hFoundItem = FindVisGroupItemRecursive(hChildItem, pVisGroup);
if (hFoundItem)
{
return hFoundItem;
}
hChildItem = GetNextItem(hChildItem, TVGN_NEXT);
}
}
}
return NULL;
}
开发者ID:steadyfield,项目名称:SourceEngine2007,代码行数:32,代码来源:grouplist.cpp
示例13: return
HTREEITEM CMyTreeCtrl::FindItem( HTREEITEM hItem, DWORD dwData, bool f )
{
if( hItem == (HTREEITEM)NULL )
return (HTREEITEM)NULL;
PSrvrData pSrvrData = (PSrvrData)GetItemData( hItem );
if( f == true ) {
if( pSrvrData->dwId == dwData )
return hItem;
}
else {
if( pSrvrData->dpid == dwData )
return hItem;
}
if( TRUE == ItemHasChildren( hItem ) )
{
HTREEITEM hFind = FindItem( GetChildItem( hItem ), dwData, f );
if( hFind != (HTREEITEM)NULL )
return hFind;
return FindItem( GetNextSiblingItem( hItem ), dwData, f );
}
else
{
return FindItem( GetNextSiblingItem( hItem ), dwData, f );
}
}
开发者ID:iceberry,项目名称:flyffsf,代码行数:27,代码来源:MYTREECTRL.cpp
示例14: ASSERT
void CMyTreeCtrl::EnumItem( HTREEITEM hItem, bool f )
{
if( hItem == (HTREEITEM)NULL )
return;
if( f == true ) {
m_uSizeofEnumItem = 0;
m_uIndexofEnumItem = 0;
}
PSrvrData pData = (PSrvrData)GetItemData( hItem );
ASSERT( pData );
if( pData->dwId < MAX_ID )
m_ahEnumItem[m_uSizeofEnumItem++] = hItem;
if( TRUE == ItemHasChildren( hItem ) )
{
if( f == false )
EnumItem( GetNextSiblingItem( hItem ), false );
EnumItem( GetChildItem( hItem ), false );
}
else
{
if( f == false )
EnumItem( GetNextSiblingItem( hItem ), false );
}
}
开发者ID:iceberry,项目名称:flyffsf,代码行数:27,代码来源:MYTREECTRL.cpp
示例15: SortChildrenCB
// Recursively sort the entire tree
void CMultiSelTreeCtrl::SortTree(HTREEITEM topNode/*=NULL*/, HTREEITEM parentNode/*=NULL*/)
{
HTREEITEM item;
// Sort things at the this level
if (parentNode && (m_SortByExtension || m_SortByResolveStat
|| m_SortByAction || m_SortByFilename))
{
TVSORTCB tvsortcb;
tvsortcb.hParent = topNode;
tvsortcb.lParam = (m_SortByResolveStat ? 2 : 0) + (m_SortByExtension ? 1 : 0)
+ (m_SortByFilename ? 8 : 0) + (m_SortByAction ? 4 : 0);
tvsortcb.lpfnCompare = SortTreeCB;
SortChildrenCB(&tvsortcb);
}
else
SortChildren(topNode);
// Get the first item at this level
if(topNode == NULL)
item=GetNextItem(TVI_ROOT, TVGN_ROOT);
else
item=GetChildItem(topNode); // Get first child
// Recurse all items that have children
while(item != NULL)
{
if(ItemHasChildren(item))
SortTree(item, topNode);
item=GetNextSiblingItem(item);
}
}
开发者ID:danieljennings,项目名称:p4win,代码行数:33,代码来源:MSTreeCtrl.cpp
示例16: GetChildItem
BOOL CDirTreeCtrl::IsValidPath(LPCTSTR strPath)
{
// This function check the Pathname
HTREEITEM hChild;
CString strItem;
CString strTempPath = strPath;
BOOL bFound = FALSE;
CFileFind find;
hChild = GetChildItem( TVI_ROOT );
strTempPath.MakeUpper();
strTempPath.TrimRight('\\');
while ( hChild )
{
strItem = GetItemText( hChild );
strItem.MakeUpper();
if ( strItem == strTempPath.Mid( 0, strItem.GetLength() ) )
{
bFound = TRUE;
break;
}
hChild = GetNextItem( hChild, TVGN_NEXT );
}
if ( !bFound )
return FALSE;
strTempPath += _T("\\nul");
if ( find.FindFile( strTempPath ) )
return TRUE;
return FALSE;
}
开发者ID:AutoCAD-DCI,项目名称:CADTools,代码行数:35,代码来源:DirTreeCtrl.cpp
示例17: GetItem
BOOL CMyTreeCtrl::TransferItem(HTREEITEM hitemDrag, HTREEITEM hitemDrop)
{
TV_INSERTSTRUCT tvstruct;
TCHAR sztBuffer[50];
HTREEITEM hNewItem, hFirstChild;
// avoid an infinite recursion situation
tvstruct.item.hItem = hitemDrag;
tvstruct.item.cchTextMax = 49;
tvstruct.item.pszText = sztBuffer;
tvstruct.item.mask = TVIF_CHILDREN | TVIF_HANDLE | TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_TEXT;
GetItem(&tvstruct.item); // get information of the dragged element
tvstruct.hParent = hitemDrop;
tvstruct.hInsertAfter = TVI_SORT;
tvstruct.item.mask = TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_TEXT;
hNewItem = InsertItem(&tvstruct);
while ((hFirstChild = GetChildItem(hitemDrag)) != NULL)
{
TransferItem(hFirstChild, hNewItem); // recursively transfer all the items
DeleteItem(hFirstChild); // delete the first child and all its children
}
return TRUE;
}
开发者ID:hnordquist,项目名称:MIC,代码行数:25,代码来源:mtreectl.cpp
示例18: GetNextItem
//****************************************************
// 获取当前结点的下一个结点
// HSTREEITEM hItem:当前结点
// int &nLevel:当前结点(hItem)与目标结点(return)的层次关系,1-父子关系,0-兄弟关系,-n-子->父的兄弟
// return:当前结点的下一个结点
// remark:如果当前结点有子结点,则返回自己的第一个子结点,
// 否则如果有向下的兄弟结点,则返回自己向下兄弟结点、
// 否则搜索自己的父结点的向下兄弟结点
//****************************************************
HSTREEITEM GetNextItem(HSTREEITEM hItem,int &nLevel)
{
if(hItem==STVI_ROOT)
{
nLevel=1;
return (HSTREEITEM)m_hRootFirst;
}
HSTREEITEM hRet=GetChildItem(hItem);
if(hRet)
{
nLevel=1;
return hRet;
}
HSTREEITEM hParent=hItem;
nLevel=0;
while(hParent)
{
hRet=GetNextSiblingItem(hParent);
if(hRet) return hRet;
nLevel--;
hParent=GetParentItem(hParent);
}
return NULL;
}
开发者ID:azunite,项目名称:duiengine,代码行数:34,代码来源:stree.hpp
示例19: GetRootItem
CString CStatisticsTree::GetText(bool onlyVisible, HTREEITEM theItem, int theItemLevel, bool firstItem)
{
bool bPrintHeader = firstItem;
HTREEITEM hCurrent;
if (theItem == NULL)
{
hCurrent = GetRootItem(); // Copy All Vis or Copy All
}
else
{
if (bPrintHeader && (!ItemHasChildren(theItem) || !IsExpanded(theItem)))
bPrintHeader = false;
hCurrent = theItem;
}
CString strBuffer;
if (bPrintHeader)
strBuffer.Format(_T("eMule v%s %s [%s]\r\n\r\n"), theApp.m_strCurVersionLong, GetResString(IDS_SF_STATISTICS) ,thePrefs.GetUserNick());
while (hCurrent != NULL)
{
for (int i = 0; i < theItemLevel; i++)
strBuffer += _T(" ");
strBuffer += GetItemText(hCurrent);
if (bPrintHeader || !firstItem)
strBuffer += _T("\r\n");
if (ItemHasChildren(hCurrent) && (!onlyVisible || IsExpanded(hCurrent)))
strBuffer += GetText(onlyVisible, GetChildItem(hCurrent), theItemLevel+1, false);
hCurrent = GetNextItem(hCurrent, TVGN_NEXT);
if (firstItem && theItem != NULL)
break; // Copy Selected Branch was used, so we don't want to copy all branches at this level. Only the one that was selected.
}
return strBuffer;
}
开发者ID:axxapp,项目名称:winxgui,代码行数:34,代码来源:StatisticsTree.cpp
示例20: SearchCompanionInfo
//寻找树项
HTREEITEM CUserCompanionList::SearchCompanionInfo(HTREEITEM hRootTreeItem, tagCompanionItem * pCompanionInfo)
{
//获取父项
if (hRootTreeItem==NULL) hRootTreeItem=m_hItemRoot;
if (hRootTreeItem==NULL) return NULL;
//变量定义
HTREEITEM hTreeItemTemp=NULL;
DWORD_PTR dwBindParam=(DWORD_PTR)pCompanionInfo;
//循环查找
do
{
//绑定判断
if (GetItemData(hRootTreeItem)==dwBindParam) return hRootTreeItem;
//子项搜索
hTreeItemTemp=GetChildItem(hRootTreeItem);
if (hTreeItemTemp!=NULL)
{
hTreeItemTemp=SearchCompanionInfo(hTreeItemTemp,pCompanionInfo);
if (hTreeItemTemp!=NULL) return hTreeItemTemp;
}
//下一树项
hRootTreeItem=GetNextItem(hRootTreeItem,TVGN_NEXT);
} while (hRootTreeItem!=NULL);
return NULL;
}
开发者ID:anyboo,项目名称:project,代码行数:32,代码来源:UserCompanionList.cpp
注:本文中的GetChildItem函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论