代码改变世界

Win32 控件篇(7)

2011-03-21 11:09  Clingingboy  阅读(1456)  评论(1编辑  收藏  举报

 

6.32 如何设置列表控件的显示方式

 

6.33 如何设置列表控件的背景图片

 

6.34 如何在列表控件中整行选中

 

使用SetExtendedStyle设置,参数为LVS_EX_FULLROWSELECT

//设置列表控件整行选中
m_ctrlList.SetExtendedStyle(LVS_EX_FULLROWSELECT);

 

6.35 如何在列表控件中显示网格线

 

同上方法,参数为LVS_EX_GRIDLINES

//设置列表控件显示网格线
m_ctrlList.SetExtendedStyle(LVS_EX_GRIDLINES);

 

6.36 如何在列表控件中使用复选框

 

同上,参数为LVS_EX_CHECKBOXES

//设置列表控件使用复选框
m_ctrlList.SetExtendedStyle(LVS_EX_CHECKBOXES);

 

6.37 如何在列表控件中排序表项

 

先注册LVN_COLUMNCLICK消息事件

ON_NOTIFY(LVN_COLUMNCLICK, IDC_LIST, OnColumnclickList)


然后使用SortItems方法传入一个CallBack进行比较

 

int CALLBACK CompareFunc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
{
    //获得列表控件
    CListCtrl* pListCtrl = (CListCtrl*)lParamSort;

    CString strItem1 = pListCtrl->GetItemText(lParam1, 0);
    CString strItem2 = pListCtrl->GetItemText(lParam2, 0);

    return strcmp(strItem2, strItem1);
}

void CDemoDlg::OnColumnclickList(NMHDR* pNMHDR, LRESULT* pResult) 
{
    //排序表项
    m_ctrlList.SortItems(CompareFunc, LPARAM(&m_ctrlList));
}