GetItem um Image eines ListControls zu erhalten



  • Hi,

    kann ich mit GetItem nicht auch den Integerwert des momentan verwendeten
    Image eines ListControl eintrages ermitteln?

    Ich meine dies müsste gehen (also der ImageList).


  • Mod

    Sicherlich. mask auf LVIF_IMAGE setzen.



  • Hi,

    so schnell hätte ich hier gar keien Antwort erwartet 😮 👍 👍

    Ich habe bereits folgendes versucht:

    CFile file("C:\\aktuellerstand.txt",CFile::modeCreate | CFile::modeWrite); 
        CListCtrl *pList = (CListCtrl*)GetDlgItem(IDC_LIST1); 
        CString Temp; 
    
        LVITEM lvi; 
        lvi.iSubItem = 0; 
        lvi.mask = LVIF_TEXT|LVIF_IMAGE; 
    
     // Alle items in Datei schreiben 
        for(int i=0; i < pList->GetItemCount(); i++) 
        { 
            // Item Daten holen 
    		lvi.iItem = i; 
    		pList->GetItem(&lvi); 
            Temp = pList->GetItemText(i,0); 
    
    //nun noch item IMAGE abfragen, aber wie?!? CString oder integer wäre gut.
    //     pList->GetItem(??);
    
            // Daten schreiben 
            file.Write(Temp,Temp.GetLength()); 
            file.Write("\r\n",2); 
        } 
    
        // Datei schließen 
        file.Close();
    

  • Mod

    1. GetItem mit LVIF_TEXT anzugeben ohne einen gültigen Puffer anzugeben müsste Dir um die Ohren fliegen.
    2. Nach Ausführen von GetItem enthält lvi.image doch die ID! lvi Wird doch durch GetItem gefüllt.
    3. Warum führst Du GetItemtext noch mal aus wenn Du mit GetItem den Text auch bekommst?



  • Meinst du so?

    lvi.iItem = i; 
            pList->GetItem(&lvi); 
    		int myval = lvi.iImage;
    		CString str;
    		str.Format("%i",myval);
    		MessageBox(str);
    

    Mein Integer hat nen utopischen Wert von 1552504....


  • Mod

    lvi.mask = LVIF_IMAGE;
    

    sehe ich nicht.



  • habe ich nicht hingeschrieben, da es im obigen Post enthalten war.
    Funktioniert jetzt aber auch 🙂


Anmelden zum Antworten