Listview Kontrollelement -> items einfügen



  • Ich habe 2 Funktionen, eine zum item anlegen und die 2. zum text einsetzen.

    Im Debug Mode funzt es und das item erscheint, nicht jedoch im release mode. Der Code lässt sich compilieren aber das item erscheint nicht. Ist das ein bug?
    Ich lege Objekte von Klassen an, welche die Windows Klasse erben. Hier die beiden Funktionen meiner Windows Klasse. Das Problem lässt sich im release Modus lösen, wenn der Inhlt der 2. Funktion durch deren Aufruf in der ersten Funktion ersetzt wird. Aber ich will es natürlich nicht doppelt haben.

    void Window::add_item(HWND list_view, string text)
    {
    LVITEM p_item;
    uint32 pos = ListView_GetItemCount(list_view);
    p_item.mask = LVIF_TEXT;
    p_item.iItem = pos;
    p_item.iSubItem = 0;
    ListView_InsertItem(list_view, &p_item);

    set_item_text(list_view, pos, text);
    }

    void Window::set_item_text(HWND list_view, uint16 id, string text)
    {
    vector<string> item;

    MString::split(text, item, "|");

    for(uint16 i = 0; i < item.size(); i++)
    {
    ListView_SetItemText(list_view, id, i, (LPSTR)item[i].c_str());
    }
    }



  • Mal BTW: Du solltest const_cast's immer vermeiden, siehe hier:

    ListView_SetItemText(list_view, id, i, (LPSTR)item[i].c_str());
    

Log in to reply