CTreeCtrl - GetItemText()
-
Hallo!
Ich habe in meinem Dialog ein CTreeCtrl mit Items eingefügt.
Dann
ON_NOTIFY(TVN_SELCHANGED, IDC_TREE1, OnClickOnNMClick) void Cxx::OnClickOnNMClick(NMHDR* pNMHDR, LRESULT* pResult) { strTemp = m_Tree->GetItemText(m_Tree->GetSelectedItem()); }Ich bekomme aber immer nur den Text des TVI_ROOT, egal welches ausgewählt wird.
Kann mir jemand sagen was ich falsch mache?Vielen Dank im Voraus!
-
Laut Doku bekomst Du eine Struktur, die Dir das alte Item und das neue Item angibt.
http://msdn2.microsoft.com/en-us/library/bb773544(VS.85).aspxAber dennoch müsste das funktionieren.
-
So kriegst du einzelne Zweige:
OnTvnSelchanged(NMHDR *pNMHDR, LRESULT *pResult) { LPNMTREEVIEW pNMTreeView = reinterpret_cast<LPNMTREEVIEW>(pNMHDR); HTREEITEM hCurSel = GetTreeCtrl().GetNextItem(TVI_ROOT,TVGN_CARET); CString strTmp = GetTreeCtrl().GetItemText(hCurSel); this->UpdateWindow(); *pResult = 0; }strTmp ist dann die Name, des ausgewählten Zweiges.
-
Perfekt, vielen vielen Dank!
Ich hab es für mich angepasst und nun gehts:
OnClickOnNMClick(NMHDR* pNMHDR, LRESULT* pResult) { LPNMTREEVIEW pNMTreeView = reinterpret_cast<LPNMTREEVIEW>(pNMHDR); HTREEITEM hCurSel = m_Tree -> GetNextItem(TVI_ROOT,TVGN_CARET); CString strTmp = m_Tree -> GetItemText(hCurSel); this->UpdateWindow(); *pResult = 0; }
-
Und warum der Umstand mit GetNextItem?
Man bekommt doch das selektierte Item in pNMHDR geliefert?<selbstgespräch>Manchmal Frage ich mich warum ich überhaupt Links poste.</selbstgespräch>