先给效果:
效果图
然后贴上代码:
// 将“关于...”菜单项添加到系统菜单中。
m_ListControl.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
m_ListControl.InsertColumn(0,L"fsad");
m_ListControl.InsertColumn(1,L"ertwergwrdg");
m_ListControl.SetColumnWidth(0,120);
m_ListControl.SetColumnWidth(1,120);
int iIndex = m_ListControl.GetItemCount();
LV_ITEM lvItem;
lvItem.mask = LVIF_TEXT;
lvItem.iItem = iIndex;
lvItem.iSubItem = 0;
lvItem.pszText = L"第一个item";
m_ListControl.InsertItem(&lvItem);
lvItem.mask = LVIF_TEXT;
lvItem.iItem = iIndex;
lvItem.iSubItem = 1;
lvItem.pszText = L"第二个item";
m_ListControl.SetItem(&lvItem);
int nIndex = 0;
int nGroupId = 0;
CString strHeader =L"代码签名证书";
m_ListControl.EnableGroupView(TRUE);
// Header-title must be unicode (Convert if necessary)
lg.pszHeader = strHeader.GetBuffer();
lg.cchHeader = strHeader.GetLength();
nGroupId = m_ListControl.InsertGroup(nIndex, &lg );
if (nGroupId==-1)
return nGroupId;
// Insert all current items into this group
for(int nRow = 0; nRow < m_ListControl.GetItemCount(); ++nRow)
{
LVITEM lvItem = {0};
lvItem.mask = LVIF_GROUPID;
lvItem.iItem = nRow;
lvItem.iSubItem = 0;
lvItem.iGroupId = nGroupId;
// lvItem.pszText = L"第三次";
m_ListControl.SetItem( &lvItem );
}
代码可以直接使用,在vs2010编译通过的,直接拷贝放在OnInitDialog()中就行了,。下面解读这段代码。
LVGROUP lg = {0};
lg.cbSize = sizeof(lg);
lg.iGroupId = nGroupId;
lg.state = LVGS_NORMAL;
lg.mask = LVGF_GROUPID | LVGF_HEADER | LVGF_STATE | LVGF_ALIGN;
lg.uAlign = LVGA_HEADER_LEFT;
以上的不说了,lvgroup就是一个组,我们要新建一个组,并在这个组中增加你的数据,以上代码是新建组并初始化这个组,
lg.pszHeader = strHeader.GetBuffer();
lg.cchHeader = strHeader.GetLength();
nGroupId = m_ListControl.InsertGroup(nIndex, &lg );我们要在这个组设置组名,显示的是什么名称,长度,m_ListControl是一个Listcontrol控件的变量。直接插入到你要分组显示的控件中。
下面一个for循环就是你要插入的数据的一个初始化操作(类似),在这个for循环中并没有数据的添加,仅仅作为数据项的增加。
LV_ITEM lvItem;
lvItem.mask = LVIF_TEXT;
lvItem.iItem = iIndex;
lvItem.iSubItem = 0;
lvItem.pszText = L"第一个item";
m_ListControl.InsertItem(&lvItem);
lvItem.mask = LVIF_TEXT;
lvItem.iItem = iIndex;
lvItem.iSubItem = 1;
lvItem.pszText = L"第二个item";
m_ListControl.SetItem(&lvItem);
这个就是我们要添加数据的数据项结构,在这之前我测试了使用不同的结构添加到同一行好像不行,我这里只使用了一个结构变量,只是赋值不同,同时这个和Listcontrol控件的添加方法一样,首先使用insertItem,然后直接setItem,不能全部使用insert插入,这样数据是不能插入进去的。