2017-09-09 3 views
-1

In wxTreeListCtrl haben wir wxTL_CHECKBOX, aber es wählt nur ein Element und nicht alle untergeordneten Elemente dieses Elements aus. Können wir eine Checkbox-Funktion für wxTreeListCtrl haben, die alle untergeordneten Zweige selektiert, wenn dieser übergeordnete Knoten ausgewählt wird? Oder haben wir ähnliche Funktionen für andere Baumkomponenten? Ich muss eine Baumstruktur erstellen, bei der, wenn wir einen Knoten auswählen, alle seine untergeordneten Knoten ausgewählt werden sollen. Wie macht man das?Kontrollkästchen für wxtreectrl in wxformbuilder

Antwort

1

Wenn Sie alle untergeordneten Elemente eines Elements auswählen möchten, wenn es aktiviert ist, müssen Sie dies tun, indem Sie die CheckItemRecursively() Methode von Ihrem wxEVT_TREELIST_ITEM_CHECKED Handler aufrufen.

+0

yup, vielen Dank :) Ich plane CheckItemRecursivly() zu verwenden, um untergeordnete Elemente als ausgewählt oder nicht ausgewählt zu markieren, d. H. Ich muss diese Funktion jedes Mal aufrufen, wenn ein Knoten ausgewählt oder nicht ausgewählt ist. Kannst du mir genau sagen wo ich diese Funktion aufrufen kann. Ich meine, welche Funktion wird in cpp-Code ausgeführt, nachdem wir ein Kontrollkästchen aus der GUI auswählen? – alohamora

+0

Ich überprüfte Event-Typen und Makros von treelist.h, aber ich bekomme nicht von wo ich CheckItemRecursively() aufrufen soll. – alohamora

+0

Hoppla, ja, ich habe 'CheckItemRecursively()' vergessen, also ist es noch einfacher. Sie müssen es nur vom Ereignishandler 'ITEM_CHECKED' aufrufen, siehe die aktualisierte Antwort. –

Verwandte Themen