15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту


CTreeCtrl SortChildren problem

Peter T. O'Neill -- oneillpt@acadamh.ucd.ie
Thursday, November 14, 1996

Environment: VC++ 4.0, Win 95

I have a sorting problem with CTreeCtrl:

	m_pTreeCtrl->SortChildren( m_htiRoot);
//	m_pTreeCtrl->SortChildren( NULL );

If I specify NULL the Tree Control is NOT sorted at all. If I specify
m_htiRoot, as above, the child items of that parent item are sorted, 
but their child items are not. I read the documentation (extract 
below) to mean that I should be using NULL to sort the entire tree, 
including children of children, which is what I want to do, but it 
does not work for me. Any suggestions?

hItem   Handle of the parent item whose child items are to be sorted.
Remarks
Call this function to sort the child items of the given parent item 
in a tree view control. If hItem is NULL, the entire tree control is 
sorted.

-----------------------------------------------------------------
Peter O'Neill, Mech. Eng. Dept., UCD, Belfield, Dublin 4, Ireland
Phone: +353-1-706 1889
Fax:   +353-1-283 0534
http://poneill.ucd.ie/



Jim Barry -- Jim.Barry@ilp.com
Saturday, November 16, 1996

[Mini-digest: 2 responses]

On 14 November 1996 16:37, Peter T. O'Neill[SMTP:oneillpt@acadamh.ucd.ie] wrote:
>Environment: VC++ 4.0, Win 95
>
>I have a sorting problem with CTreeCtrl:
>
>	m_pTreeCtrl->SortChildren( m_htiRoot);
>//	m_pTreeCtrl->SortChildren( NULL );
>
>If I specify NULL the Tree Control is NOT sorted at all. If I specify
>m_htiRoot, as above, the child items of that parent item are sorted, 
>but their child items are not. I read the documentation (extract 
>below) to mean that I should be using NULL to sort the entire tree, 
>including children of children, which is what I want to do, but it 
>does not work for me. Any suggestions?
>
>hItem   Handle of the parent item whose child items are to be sorted.
>Remarks
>Call this function to sort the child items of the given parent item 
>in a tree view control. If hItem is NULL, the entire tree control is 
>sorted.
>
>-----------------------------------------------------------------
>Peter O'Neill, Mech. Eng. Dept., UCD, Belfield, Dublin 4, Ireland
>Phone: +353-1-706 1889
>Fax:   +353-1-283 0534
>http://poneill.ucd.ie/
>
>

Yes, SortChildren only sorts immediate children, so you have to implement the recursion yourself. 

Jim Barry
Interactive Learning Productions
Newcastle upon Tyne, UK

-----From: "Rammohan Rao K. V." 

I had same problem while using NULL to sort the complete tree. I called
SortChildren() recursively to sort all levels.

CMyTree::Sort(HTREEITEM hItem)
{
	if(hItem)
	{
		SortChildren(hItem);
	
		HTREEITEM hChildItem = GetChildItem(hItem);
		while(hChildItem)
		{
			Sort(hChildItem);
			hChildItem = GetNextSiblingItem(hChildItem);
		}
	}
}

Call this with

	Sort(GetRootItem());

Rammohan
____________________________________________________________________
K.V.Rama Mohana Rao
Project Leader
Sierra Optima Ltd
# 503, Software Technology Park
Maitrivanam, HUDA Complex
Ameerpet, Hyderabad - 5000 038
AP,   INDIA
Work : (91)-40-292771, 290321
Fax  : (91)-40-294810
_____________________________________________________________________





| Вернуться в корень Архива |