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 wie

    void 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
    weiter

    Danke 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 TextBox

    hoffe das ist verständlich und hilft



  • Vielen Dank für die Antwort
    Ich war da auf einem ganz falschen Weg

    GetItemTExt 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 funktioniert

    Hier 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


Anmelden zum Antworten