ListView + ImageList



  • Hallo,

    ich hänge derzeit an einem Problem an dem ich einfach nicht weiter komme. Ich habe in meinem Programm ein ListCtrl im Report Style und möchte für eine bestimmte Spalte ein Bild vorm Text anzeigen lassen. Das funktioniert im Prinzip indem ich eine ImageList mit dem ListCtrl "verbinde". Mein Problem ist nun, dass für die erste Spalte des ListCtrl immer das Bild oder zumindest Platz dafür gelassen wird. Ich möchte aber dort gar kein Bild sondern eben nur in einer bestimmten Spalte. Hier mal mein bisheriger Code (teilweise Pseudocode):

    SendMessage (hList, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_SUBITEMIMAGES);
    
    himlSmall = ImageList_LoadImage (hModule, MAKEINTRESOURCE (IDB_BITMAPERROR), 32, 2, CLR_NONE, IMAGE_BITMAP, LR_DEFAULTCOLOR);
    
    ListView_SetImageList (hList, himlSmall, LVSIL_SMALL); 
    
    LvItem.mask   = LVIF_TEXT;
    LvItem.iImage = 0;
    
    if (LvItem.iSubItem == 3)
    {
        LvItem.mask   = LVIF_TEXT | LVIF_IMAGE;
        LvItem.iImage = 1;
    }
    
    if (SubItem)
        SendMessage (hList, LVM_INSERTITEM, 0, reinterpret_cast<LPARAM> (&LvItem));
    else
        SendMessage (hList, LVM_SETITEM, 0, reinterpret_cast<LPARAM> (&LvItem));
    


  • So weit ich weis gibt es dafür keine Lösung.

    Auf meiner Homepage http://members.inode.at/anton.zechner/az/index.html
    gibt es ein Beispiel zu einem speziellen Tree-Control. (unter "TreeList")

    Mann kann es auch als List-Control verwenden.
    Mit den Nachrichten TVM_GETROWOFITEM und TVM_GETITEMOFROW kann man zwischen
    HTREEITEM und den Reihen hin und her rechen. Damit kann man das Control fast
    gleich ansprechen wie ein List-Control.


Anmelden zum Antworten