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. Zitieren
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. Zitieren
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. Zitieren
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: Zitieren
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. Zitieren
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. Zitieren
Narf! Geschrieben 18. November 2002 Autor Geschrieben 18. November 2002 Brauche zum Vorhergehenden Hilfe. Zitieren
Klotzkopp Geschrieben 18. November 2002 Geschrieben 18. November 2002 Bitte kein Threadpushing ohne Absprache mit der Moderation. Boardregeln, Punkt 9. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.