Windows CListCtrl和组

时间:2014-01-23 21:02:19

标签: winapi win32gui

我尝试使用一个元素在CListrCtrl中创建简单组,但它并没有向我显示任何内容:

EnableGroupView(TRUE);

LVGROUP group = { 0 };
group.cbSize = sizeof(LVGROUP); 
group.iGroupId = 1;
group.state = LVGS_NORMAL; 
group.mask = LVGF_GROUPID | LVGF_HEADER | LVGF_STATE | LVGF_ALIGN;
group.uAlign = LVGA_HEADER_LEFT;

int idx = InsertGroup(0, &group);

LVITEM item = {0};
item.mask = LVIF_TEXT | LVIF_IMAGE;// | LVIF_GROUPID;
item.iItem = 0;
item.iSubItem = 0;
item.pszText = L"aa";
item.cchTextMax = 3;
item.state = 0;
item.stateMask = LVIS_SELECTED;
item.iGroupId = idx;
InsertItem(&item);

顺便说一句,只有当我没有启用群组查看模式时,我才会看到此项目。我做错了吗?

PS:Windows 7 + MSVC 2010

1 个答案:

答案 0 :(得分:3)

LVITEM::iGroupId会员需要群组ID ,但您传递的是群组索引。这就是您无法看到该项目的原因 - 您将其添加到不存在的组中。您需要将item.iGroupId设置为group.iGroupId(即1)。