CListCtrl::SetItemData(...)



  • Hallo,

    m_List ist ein CListCtrl-Element meines CTabPage-Dialogfelds.
    In der OnInitDialog() initialisiere ich die Liste wie folgt:

    BOOL CTabPage::OnInitDialog() 
    {
        .........
    	m_List.InsertItem ( 0, _T(m_mySet.m_text1) );
    	m_List.SetItemText ( 0, 1, _T(m_mySet.m_text2) );
    	m_List.SetItemText ( 0, 2, _T(m_mySet.text3) );
    
    	m_List.SetItemData( 0, 1 ); //hier möchte ich lParam setzen
    	TRACE("%d\n", m_List.GetItemData( 0 )); //Ausgabe: 1
        ..........
    
    	return TRUE;  
    }
    

    Möchte ich jetzt allerdings in folgender Funktion wieder auf lParam zugreifen, so ist der Wert auf 0 gesetzt/ nicht mehr gespeichert???

    void CTabPage::OnDblclkList(NMHDR* pNMHDR, LRESULT* pResult) 
    {
        *pResult = 0;
    	TRACE("%d\n", m_List.GetItemData( 0 )); //Ausgabe: 0
    }
    

    Wäre super, wenn mir jemand sagen könnte, woran das liegt.
    Besten Dank, mira



  • also was mir aufält ist

    das du auf ItemData zugreifst obwohl du diese nicht gesetzt hast

    m_list.InsertItem();
    m_list.SetItemText();
    m_list.SetItemData();

    ich mach immer die reihenfolge 🙂



  • Da kann ich dir jetzt nicht ganz folgen...
    ... kann sein, dass ich grad ziemlich fest auf meiner Leitung stehe, aber genau das ist doch meine Reihenfolge, oder nicht?



  • Kann hier nochmal jemand drüberschauen, bitte? Und mir möglicherweise einen Tip geben?!



  • Oder gibt es irgendwo ein Tutorial/ Beispielcode, in dem beschrieben wird, wie man ein CListCtrl-Element zur Verwaltung einer Datenbank verwenden kann? Auf www.codeproject.com hab ich schon gesucht, aber nichts gefunden.



  • Klingt nach einer Liste die sortiert wird, und nachher die Elemente nicht mehr am gleichen Platz vorfindet.

    Nimm mal das Sortieren Häkchen wech bei Deiner Liste.



  • Danke für die Antwort.
    Mittlerweile hab ich den Fehler "schon" gefunden. Hat eine ähnliche Ursache gehabt.


Anmelden zum Antworten