CTreeCtrl angeklicktes Objekt herrausfinden die xxx malte
-
Hi,
habe nen komisches problem mit dem CTreeCtrl, ich erstelle mir eine Struktur mit ner for Schleife:TV_INSERTSTRUCT tv; HTREEITEM item; tv.hParent = TVI_ROOT; tv.item.mask = TVIF_TEXT; tv.hInsertAfter = TVI_LAST; int x; for(x=0;x<5;x++) { char buffer[10]; sprintf(buffer,"Hallo: %d :",x); tv.item.pszText = buffer; item = m_ServerTree.InsertItem(&tv); }
das ist nur mal so zum testen.
Jetzt möchte ich halt herrausfinden welches Objekt angeklickt wurde und wie es heißt.
Also ab in den Klassenassistenten und die Methode NM_Click mit folgendem Code beabreitet:void CMainDialog::OnClickServertree(NMHDR* pNMHDR, LRESULT* pResult) { HTREEITEM select = m_ServerTree.GetSelectedItem(); CString auswahl; auswahl = m_ServerTree.GetItemText(select); AfxMessageBox(auswahl); *pResult = 0; }
so nur das Problem:
wenn ich jetzt ein Objekt das erste mal anklicke steht in der MSG Box nichts drin. Klick ich das Objekt nochmal an. Steht es drin. Klick ich nun irgendein anderes Objekt an steht noch der Wert vom ersten Objekt drin, klick ich es nochmal an, steht der richtige Wert drin. Also irgendwie wird die Variabel " auswahl " nur beim zweiten Klick aktualisiert... Wieso?? Oder ist der Code falsch?
-
Ich würd nicht die Click-Msg verwenden, sondern die onSelChange (soeine gibt es beim TreeCtrl glaube ich)!
Kann sein, dass das angeklickte element erst aktualisiert wird, nachdem die onClick msg gesendet wird