Toon posts:

[C++/MFC] CTreeCtrl met checkboxes

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik gebruik een CTreeCtrl met checkboxes. Na het aanklikken van wat van die checkboxes druk je op een knop, en moet ik al die TreeItems gaan uitlezen.

Dit is me tot nog toe niet gelukt. Ik gebruikte eerst een geneste while waarin ik de categorieën zou moeten doorlopen en elke categorie bevat een aantal machines. Ik kreeg slechts alleen de Categorieën en de machines niet.

Ik heb hiervoor telkens CTreeCtrl::GetNextItem gebruikt met als tweede argument TVGN_NEXT. Ik heb het ook nog geprobeerd met GetNextVisibleItem, maar dat boekte ook niet veel resultaat. MSDN zegt er bijna niets over. Weet iemand hoe dit dan wél werkt?

  • The End
  • Registratie: Maart 2000
  • Laatst online: 10:36

The End

!Beginning

Je moet 'GetNextSiblingItem' om het volgende item op hetzelfde niveau te krijgen. Om een niveau dieper te gaan (child items) moet je 'GetChildItem' aanroepen.
Als je dit recursief doet kan je zo de hele tree doorlopen.

Verwijderd

Topicstarter
Top, bedankt.

Ik was al overgestapt op een CListCtrl (dan maar zonder categorieën) maar ik heb de Treecontrol er weer ingebouwd, en inderdaad. Het werkt.

Ik hoef niet recursief te doen (al zou dat wel leuk zijn natuurlijk), want mijn childs zijn maximaal maar 1 niveau diep.

  • The End
  • Registratie: Maart 2000
  • Laatst online: 10:36

The End

!Beginning

Om het recursief door te lopen kan je dit doen:

code:
1
2
3
4
5
6
7
8
9
10
void TraverseTree(HREEITEM Root)
{
       while(Root != NULL)
       {

                if(ItemHasChildren(Root))
                      TraverseTree(GetChildItem(Root));
                Root = GetNextSiblingItem(Root);
       }
}