ListView LVM_INSERTGROUP не отображаются SubItem

Тема в разделе "WASM.BEGINNERS", создана пользователем pivikov, 12 июл 2011.

  1. pivikov

    pivikov New Member

    Публикаций:
    0
    Регистрация:
    19 сен 2010
    Сообщения:
    19
    В общем, создаю группу:
    Код (Text):
    1. hLst1 = CreateWindowEx(WS_EX_CLIENTEDGE, "SysListView32", NULL,LVS_REPORT|LVS_ALIGNTOP|WS_CHILD|WS_VISIBLE|WS_VSCROLL,350,35,365,400,hwnd, NULL, hInst, NULL);
    2. ...
    3.      lvg.cbSize = sizeof(LVGROUP);
    4.      lvg.mask = LVGF_GROUPID|LVGF_HEADER|LVGF_ALIGN;
    5.      lvg.pszHeader = L"GROUP";
    6.      lvg.cchHeader = 6;
    7.      lvg.iGroupId = 0;
    8.      lvg.uAlign = LVGA_HEADER_CENTER;
    9.      SendMessage(hLst1,LVM_INSERTGROUP,(WPARAM)0, (LPARAM)&lvg);
    10.      SendMessage(hLst1,LVM_ENABLEGROUPVIEW,(WPARAM)TRUE,0);
    Добавляются туда строки:
    Код (Text):
    1.     i=0;
    2.     j=0;        
    3.     lvi.mask = LVIF_TEXT|LVIF_GROUPID;
    4.     lvi.iItem = i;
    5.     lvi.iGroupId = 0;
    6.     lvi.iSubItem = j;
    7.     lvi.pszText = sName;
    8.     SendMessage(hLst1, LVM_INSERTITEM, 0, (LPARAM)&lvi);
    9.   ...
    10.     lvi.iSubItem = j; //count colum
    11.     lvi.pszText = sName;
    12.     SendMessage(hLst1, LVM_SETITEM, 0, (LPARAM)&lvi);
    Проблема в том, что отображается только первая колонка.
    Без групп отображается все нормально.
    Что с этими группами нужно подшаманить я так и не понял, облазил все что только мог.
    ps Манифест добавлен, название группы видно.
     
  2. pivikov

    pivikov New Member

    Публикаций:
    0
    Регистрация:
    19 сен 2010
    Сообщения:
    19
    Вот тут есть готовое решение, правда оно на .net, я что-то в ту кашу никак въехать не могу.
    Кто разбирается в этом .net'е не могли бы сказать чего не хватает в моем коде?
    http://www.codeproject.com/KB/list/GroupListView.aspx
    http://www.codeproject.com/KB/list/GroupableListView.aspx
     
  3. pivikov

    pivikov New Member

    Публикаций:
    0
    Регистрация:
    19 сен 2010
    Сообщения:
    19
    Разобрался сам, правильно будет так:
    Код (Text):
    1.    
    2.     i=0;
    3.     j=0;        
    4.     lvi.mask = LVIF_TEXT|LVIF_GROUPID;
    5.     lvi.iItem = i;
    6.     lvi.iGroupId = 0;
    7.     lvi.iSubItem = j;
    8.     lvi.pszText = sName;
    9.     SendMessage(hLst1, LVM_INSERTITEM, 0, (LPARAM)&lvi);
    10.   ...
    11.     lvi.mask = LVIF_TEXT;
    12.     lvi.iSubItem = j; //count colum
    13.     lvi.pszText = sName;
    14.     SendMessage(hLst1, LVM_SETITEM, 0, (LPARAM)&lvi);
    Ведь говорила мне мама внимательнее читать psdk :)