Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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. :(

Geschrieben
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.
Geschrieben

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:

Geschrieben
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.
Geschrieben

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.

  • 1 Monat später...

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...