【问题标题】:Windows CListCtrl and groupsWindows CListCtrl 和组
【发布时间】:2014-01-23 21:02:18
【问题描述】:

我正在尝试使用一个元素在 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

【问题讨论】:

    标签: winapi win32gui


    【解决方案1】:

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

    【讨论】:

    • 谢谢,那是我的错误。对于 CListCtrl 等控件的样本不足,我感到非常惊讶...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-01
    • 2013-03-20
    • 2011-10-23
    相关资源
    最近更新 更多