2010-09-05 11 views
4

J'utilise wxWidgets 2.8.11 sous Windows 7 64 bits. J'ai créé un contrôle wxTreeCtrl, qui, comme son nom l'indique, est un contrôle d'arbre. Vous pouvez ajouter des nœuds racine en appelant AddRoot(), mais il semble ne fonctionner que la première fois de l'appeler.wxWidgets AddRoot() sur wxTreeCtrl ne parvient pas à ajouter plus d'un nœud

Voici le code où je crée l'arbre:

newHandler-> sendPacketTree = new wxTreeCtrl(newHandler->sendGroupBox,4,wxPoint(7,12),wxSize(newHandler->sendGroupBox->GetSize().x-14,newHandler->sendGroupBox->GetSize().y-20),wxTR_DEFAULT_STYLE); 

Voici ce que je fais comme un test:

this->sendPacketTree->AddRoot(wxT("Test1")); 
this->sendPacketTree->AddRoot(wxT("Test2")); 

Cependant, seul le premier noeud racine apparaît dans la Tree, et le deuxième nœud n'apparaît pas (ou tout autre nœud après le premier nœud d'ailleurs)

Est-ce que quelqu'un sait pourquoi cela se passe, ou comment je peux contourner cela? Je suis perplexe.

+0

Pour voir plus de code que les deux lignes qui échouent aiderait. – kiamlaluno

+0

Très bien, j'ai ajouté l'extrait où l'arbre est créé ... Je ne pouvais pas penser à autre chose qui est pertinent. – Brad

Répondre

4

J'ai trouvé une solution par moi-même. Je pensais que AddRoot() vous permettait d'ajouter plus d'une racine. Il s'avère que vous ne pouvez avoir qu'une seule racine, mais vous pouvez masquer la véritable "racine", et tous les enfants de la racine ressembleront à une racine avec le jeu de style wxTR_HIDE_ROOT.

+0

+1 pour l'affichage de votre propre solution – WolfgangA