列表视图控件中的分组 [英] Grouping in List View Controls
本文介绍了列表视图控件中的分组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我试图在显示在平铺视图"中的ListView控件中对项目进行分组,但是当我这样做时,所有子项目文本都消失了(使用报表视图"时也会发生同样的情况).
这是我正在使用的代码,有什么想法吗?
I am trying to group the items in a ListView Control that displays in Tile View but when I do all the sub item text disappears (the same happens in when using Report View).
Here is the code I''m using, any ideas?
//temporary use Report View
//SetTileView();
//Create 2 Groups
{
LVGROUP lvg;
lvg.mask = LVGF_HEADER | LVGF_ALIGN | LVGF_GROUPID | LVGF_STATE;
lvg.pszHeader = _T("Group 1");
lvg.iGroupId = 0;
lvg.uAlign = LVGA_FOOTER_LEFT;
lvg.state = LVGS_NORMAL;
SendMessage(hList, LVM_INSERTGROUP, -1, (LPARAM)&lvg );
lvg.pszHeader = _T("Group 2");
lvg.iGroupId = 1;
SendMessage(hList, LVM_INSERTGROUP, -1, (LPARAM)&lvg );
}
//Set number, style and size of Columns
{
LVCOLUMN lvc;
int iCol;
lvc.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
lvc.fmt = LVCFMT_LEFT;
lvc.pszText =_T("Col");
lvc.cx = COLWIDTH;
// Add the columns.
for (iCol = 0; iCol < VIEWCOLS; iCol++)
{
lvc.iSubItem = iCol;
ListView_InsertColumn(hList, iCol, &lvc);
}
}
//Set item amd sub item text and number of displayed items
{
UINT uCols[3] = {1,2,3};
LVTILEINFO lvti;
lvti.cbSize = sizeof(LVTILEINFO);
lvti.cColumns = VIEWCOLS;
lvti.puColumns = uCols;
LVITEM lvi;
memset(&lvi, 0, sizeof(LV_ITEM));
lvi.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_GROUPID;
lvi.iGroupId = 0;
for(int n = 0; n < iNumLibs; n++)
{
lvi.iItem = n;
lvi.pszText = pszItemText[n];
lvi.iImage = n;
lvi.iSubItem = 0;
ListView_InsertItem(hList, &lvi);
lvi.iSubItem = 1;
ListView_SetItem(hList, &lvi);
lvi.iSubItem = 2;
ListView_SetItem(hList, &lvi);
lvi.iSubItem = 3;
ListView_SetItem(hList, &lvi);
lvti.iItem = n;
ListView_SetTileInfo(hList, &lvti);
}
}
{
UINT uCols[3] = {1,2,3};
LVTILEINFO lvti;
lvti.cbSize = sizeof(LVTILEINFO);
lvti.cColumns = VIEWCOLS;
lvti.puColumns = uCols;
LVITEM lvi;
memset(&lvi, 0, sizeof(LV_ITEM));
lvi.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_GROUPID;
lvi.iGroupId = 1;
for(int n = 0; n < 1; n++)
{
lvi.iItem = n;
lvi.pszText = _T("Cert01");
lvi.iImage = n;
lvi.iSubItem = 0;
ListView_InsertItem(hList, &lvi);
}
}
ListView_EnableGroupView(hList, TRUE);
}
推荐答案
感谢enhzflep的链接,并对照我自己的代码检查了示例,我得到了答案:-
在"for(int n = 0; n< iNumLibs; n ++)"循环中设置三个子项目时,我应该使用:-
SendMessage(hList,LVM_SETITEMTEXT,n,(LPARAM)&lvi);
不:-
ListView_SetItem(hList,&lvi);
Thanks to enhzflep for the link, having checked the sample against my own code I have the answer:-
When setting the three sub-items in the "for(int n = 0; n < iNumLibs; n++)" loop I should have used:-
SendMessage(hList, LVM_SETITEMTEXT, n, (LPARAM)&lvi);
Not:-
ListView_SetItem(hList, &lvi);
这篇关于列表视图控件中的分组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文