Narf! Geschrieben 10. Oktober 2002 Geschrieben 10. Oktober 2002 Moin! 1. Kann ich in einer Variable festhalten, ob ich ein Tree-Level geöffnet bzw. geschlossen habe? 2. Kann ich das Level automatisch schließen, wenn das letzte Element den Fokus verliert? Und mit dem CD-ROM bin ich, trotz einiger Tipps, noch nicht weitergekommen.
Narf! Geschrieben 10. Oktober 2002 Autor Geschrieben 10. Oktober 2002 Kann ich feststellen, in welchem Level ich mich befinde? Z.Bsp: ich öffne/schließe Level 2 -> Anzeige "Level 2 geöffnet/geschlossen." usw.
Klotzkopp Geschrieben 10. Oktober 2002 Geschrieben 10. Oktober 2002 Original geschrieben von Narf! 1. Kann ich in einer Variable festhalten, ob ich ein Tree-Level geöffnet bzw. geschlossen habe?Du kannst mit CTreeCtrl::GetItemState testen, ob ein bestimmtes Element geöffnet bzw. geschlossen ist: if( m_deinTreeCtrl.GetItemState(hItem, TVIS_EXPANDED ) == TVIS_EXPANDED ) { // aufgeklappt } else { // nicht aufgeklappt } hItem ist hier das HTREEITEM des Elements, dessen Status Du prüfen willst. 2. Kann ich das Level automatisch schließen, wenn das letzte Element den Fokus verliert?Ja, auch wenn sich mir der Sinn nicht ganz erschließt. In dem TNV_SELCHANGING-Handler kannst Du über pNMTreeView->itemOld.hItem an das HTREEITEM des Elements kommen, das jetzt nicht mehr selektiert ist: HTREEITEM hOld = pNMTreeView->itemOld.hItem; if( hOld ) { if( !m_deinTreeCtrl.GetNextSiblingItem( hOld ) ) { // es war das letzte HTREEITEM hParent = m_deinTreeCtrl.GetParentItem( hOld ); if( hParent ) { m_deinTreeCtrl.Expand( hParent, TVE_COLLAPSE ); } } }[/CODE] [b]Kann ich feststellen, in welchem Level ich mich befinde?[/b]Dafür solltest Du einen Handler für TVN_ITEMEXPANDED einrichten. Das geht analog zu TVN_SELCHANGING. Da drin kannst Du dann prüfen, wie oft Du GetParentItem aufrufen kannst: [CODE]if( (pNMTreeView->action & TVE_EXPAND) == TVE_EXPAND ) { // aufgeklappt } else { // zugeklappt } int level = 0; HTREEITEM hParent = m_deinTreeCtrl.GetParentItem( pNMTreeView->itemNew.hItem ); while( hParent ) { level++; hParent = m_deinTreeCtrl.GetParentItem( hParent ); } Und mit dem CD-ROM bin ich, trotz einiger Tipps, noch nicht weitergekommen. Dann solltest Du in dem entsprechenden Thread schreiben, wo genau Probleme auftauchen.
Narf! Geschrieben 10. Oktober 2002 Autor Geschrieben 10. Oktober 2002 Hallöchen! Ich möchte das CD-Laufwerk 1. prüfen, ob eine CD drin ist, 2. prüfen, ob es offen oder geschlossen ist 3. selbst öffnen oder schließen 4. Den Volume-Name speichern Danke für die Tree-Tipps, ich glaube ich hab jetzt alle Probleme damit gelöst. :cool:
Klotzkopp Geschrieben 10. Oktober 2002 Geschrieben 10. Oktober 2002 Original geschrieben von Narf! Ich möchte das CD-Laufwerk 1. prüfen, ob eine CD drin ist, 2. prüfen, ob es offen oder geschlossen ist 3. selbst öffnen oder schließen 4. Den Volume-Name speichern Wie ich schon sagte, schreib bitte in dem Thread, in dem Du die Fragen ursprünglich gestellt hattest, was die konkreten Probleme sind. Wenn ein anderer Benutzer mal ein ähnliches Problem hat, soll er sich die Antworten nicht über mehrere Threads verteilt zusammensuchen müssen.
Narf! Geschrieben 15. Oktober 2002 Autor Geschrieben 15. Oktober 2002 Moin moin! Ich möchte aus einer Datei einen String auslesen und den in der Tree-Ansicht suchen und, wenn gefunden, markieren. Sozusagen ein Rücksprung auf das letzte genutze Item, nach dem das Programm beendet und wieder gestartet wurde.
Narf! Geschrieben 18. November 2002 Autor Geschrieben 18. November 2002 Brauche zum Vorhergehenden Hilfe.
Klotzkopp Geschrieben 18. November 2002 Geschrieben 18. November 2002 Bitte kein Threadpushing ohne Absprache mit der Moderation. Boardregeln, Punkt 9.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden