TreeView zum Ändern des Bildinhaltes nutzen
-
Hi Community
,
ich habe ein kleines Problem mit der Erstellung eines Dialoges und hoffe ihr könnt mir vielleicht weiterhelfen.
Derzeit besteht mein Dialogfenster aus einem rechten und einem linken Bereich.
Auf der linken Seite befindet sich ein TreeView und auf der rechten Seite eine Picture Umgebung. Nun möchte ich mit Hilfe des TreeView den Inhalt des Picture Controls verändern.
Die Änderung soll mit Hilfe eines Klicks auf den jeweiligen TreeView-Eintrag erfolgen.Kann mir jemand einen Tipp geben, wie ich dieses Vorhaben verwirklichen kann.
Alle bisherigen Versuche mit GetSelectedItem o. GetCount sind kläglich gescheitert.Gruß Se33l
-
Was ist gescheitert?
1. Bau einen NM_DBLCLK Handler ein.
http://msdn.microsoft.com/en-us/library/bb773475(v=VS.85).aspx
2. Besorge Dir das selektierte Item mit CTreeCtrl::GetSelectedItem()
3. Führe die entsprechende Änderungsaktion in dem Picture Control durch.Ansonsen solltest Du uns zeigen wo es in Deinem Code hapert.
-
hm,
ich gebs zu.. ich blick gerade nicht so ganz durch
Ich habe meinem TreeView die Variable m_TreeControl hinzugefügt
Meine Einträge mach ich innerhalb von :BOOL myDialogDlg::OnInitDialog() { ..... HTREEITEM h1, h2; h1 = m_TreeControl.InsertItem("Eintrag1", TVI_ROOT); h2 = m_TreeControl.InsertItem("Eintrag12", h1); m_TreeControl.InsertItem("Eintrag121", h2); m_TreeControl.InsertItem("Eintrag122", h2); }
Bisher gehe ich davon aus, dass ich das Auslesen meines ausgewählten TreeView-Eintrages mittels der Funktion
void myDialogDlg::OnNMDblclkTreecontrol(NMHDR *pNMHDR, LRESULT *pResult) { *pResult = 0; }
umsetzen kann. Sehe ich das richtig, oder muss ich für mein TreeView eine separate Klasse anlegen ?
Gruß Sebbl
-
Bein! In OnNMDblclkTreecontrol bekommst Du gesagt, das ein Doppelklick ausgeführt wurde. Mit GetSelectedItem kannst Du das selektierte Item im Tree ermitteln.
-
Danke, hab das Problem nun gelöst
...
Falls es jemand interessiert ...void myDialogDlg::OnNMDblclkTreecontrol(NMHDR *pNMHDR, LRESULT *pResult) { HTREEITEM hItem = m_TreeControl.GetSelectedItem(); strTreeText = m_TreeControl.GetItemText(hItem); *pResult = 0; }
-
BTW: Man kann auch in dasTree-Control doppelt klicken in einen Bereich der kein Item enthält oder der Tree könnte leer sein, oder es wird aus einem anderen Grund kein selektiertes Item geliefert.
Ich denke auch so etwas solltest Du berücksichten