Inhalt eines Items im Listcontrol erhalten
-
Hallo Leute
Ich bin immer noch an meinem Listcontrol dran
Ich möchte gerne durch einen doppelklick auf die Zeile
den Ihnalt des i-ten Items erhalten .
Ich bastele schon eine ganze Weile dran rum in der Art wievoid CDlg_Vorgang::OnNMDblclkListVorgang(NMHDR *pNMHDR, LRESULT *pResult) { LVITEM lvi; m_ctrlVorgang.GetItem(&lvi); MessageBox(lvi.pszText); *pResult = 0; }Ich weis , dass das so nicht funktioniert aber ich komme irgendwie nicht
weiterDanke im Voraus
Gruß Linus
-
Beispiel:
int i; i = c_lstListe.GetSelectionMark(); m_txtText1 = c_lstListe.GetItemText(i, 1); m_txtText2 = c_lstListe.GetItemText(i, 2); m_txtText3 = c_lstListe.GetItemText(i, 3); UpdateData(false);Legenden:
i = Variable für Zeilenindex
c_lstListe = ListControl
m_txtText... = MemberVariable von TextBoxhoffe das ist verständlich und hilft
-
Vielen Dank für die Antwort
Ich war da auf einem ganz falschen WegGetItemTExt funktioniert jedoch bei
i = m_ctrlVorgang.GetSelectionMark();wird i=78 zurückgegeben ???
ich hab nur eine Zeile in dem Listcontrol und 7 Spalten
-
seltsam! wird i vielleicht überschrieben?
-
die erste zeile heißt "0"
-
ich konnte es ja mit
.GetItemTex(0,5)
ausprobieren, und es hat funktioniertHier der code:
void CDlg_Vorgang::OnNMDblclkListVorgang(NMHDR *pNMHDR, LRESULT *pResult) { int i; i=m_ctrlVorgang.GetSelectionMark(); MessageBox(m_ctrlVorgang.GetItemText(i,5)); *pResult = 0; }Kann ich nicht über das doubleClick-Event die Reihe ermitteln?
-
Ich habs. So gehts:
int i; NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR; i=pNMListView->iItem; MessageBox(m_ctrlVorgang.GetItemText(i,5));Danke
-
nur zur vollständigkeit
mit der einstellung:
.SetExtendedStyle(LVS_EX_FULLROWSELECT)gehts auch wie ichs oben beschrieben hab