在使用CListCtrl控件Report显示风格时,需要设置列标题信息,否则不能向控件中添加数据信息,编辑列标题需要
使用InsertColumn方法:
m_ListCtrl.InsertColumn(0, "姓名", LVCFMT_LEFT, 150, 0);
m_ListCtrl.InsertColumn(1, "联系电话", LVCFMT_LEFT, 150, 1);
为CListCtrl控件添加行:
在CListCtrl控件中添加信息时不能直接向控件中添加列信息,需要先为控件添加行,使用InsertItem方法:
m_ListCtrl.InsertItem(0, "");
为CListCtrl控件添加数据:
通过SetItemText方法可以为任意行的任意列添加数据:
m_ListCtrl.SetItemText(0, 0, "Name");
m_ListCtrl.SetItemText(0, 1, "123456");
设置CListCtrl控件的扩展风格:
使用SetExtendedStyle函数可以设置CListCtrl控件的扩展风格,如显示方式,画出网格线等:
m_ListCtrl.SetExtendedStyle(
LVS_EX_FLATSB // 扁平风格滚动
| LVS_EX_FULLROWSELECT // 允许正航选中
| LVS_EX_HEADERDRAGDROP // 允许标题拖拽
| LVS_EX_ONECLICKACTIVEATE // 高亮显示
| LVS_EX_GRIDLINES // 画出网格线
);
单击CListCtrl控件列标题进行排序:
在使用CListCtrl控件的Report显示风格时,要实现单击列标题进行排序需要在控件的LVN_COLUMNCLICK消息的处理函数中添加SortItem函数:
// Sort the item in reverse alphabetical order.
static int CALLBACK
MyCompareProc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
{
// lParamSort contains a pointer to the list view control.
// The lParam of an item is just its index.
CListCtrl* pListCtrl = (CListCtrl*) lParamSort;
CString strItem1 = pListCtrl->GetItemText(lParam1, 0);
CString strItem2 = pListCtrl->GetItemText(lParam2, 0);
return strcmp(strItem2, strItem1);
}
void snip_CListCtrl_SortItems()
{
// The pointer to my list view control.
extern CListCtrl* pmyListCtrl;
// Sort the list view items using my callback procedure.
pmyListCtrl->SortItems(MyCompareProc, (LPARAM) pmyListCtrl);
}