[CTreeCtrl] Wie aktualisieren?
-
Hi,
hab zum Thema Strukturansicht keine Beispeile gefunden, die über die Initialisierung hinausgehen. Allerdings möchte ich meine Strukturansicht während der Laufzeit ändern (Item Anklicken->Edit-Dialog(OK)->Änderung in Ansicht übernehmen). Bei Listen habe ich bisher die Liste einfach neu initialisiert und mir vorher die Auswahl gemerkt und dannach wieder eingestellt. Leider funzt das beim TreeCtrl nicht, da man dafür auch die Zustände der Knoten(EXPAND?) wissen muss.
Wie kann man Teile einer Strukturansicht aktualisieren?Danke,
don_basto
-
Den Text eines Items kann man mittels CTreeCtrl::SetItemText ändern. Ein Item zu refreshen geht über CTreeCtrl::GetItemRect und CWnd::InvalidateRect( ).
Ob ein Item aufgeklappt ist oder nicht, findest du mit CTreeCtrl::GetItemState heraus.
Erweiterte Möglichkeiten des CTreeCtrl:
Unterstrukturen eines Items beim Aufklappen / Zuklappen kannst du ändern / hinzufügen / löschen, indem du auf die Nachrichten TVN_ITEMEXPANDING und TVN_ITEMEXPANDED reagierst.
Der Inhalt eines Tree-Items kann das Control auch dynamisch ermitteln:
Belege beim Einfügen eines Items den Text mit LPSTR_TEXTCALLBACK und reagiere auf die Notification-Message TVN_GETDISPINFO.