一、說明:
CListCtrl控件簡單易用,美中不足的是不能設置單元格的顏色,作者試著擴展了CListCtrl類,提供了一個可設置單元格顏色的函數,
SetItemColor(int nItem, int nSubItem, COLORREF clrText, COLORREF clrBkgnd).
本類參考自 vckbase “列表控件排序功能的實現”(作者/王駿 ) ,在使用本類前,請先參考該文。
示例程序運行效果如圖一:
圖一 示例程序運行效果圖
二、原理
在ListCtrl繪制單元格時將發送NM_CUSTOMDRAW消息給父窗口,只要處理該消息,我們就可以定制自己想要的顏色。具體使用方法請參考源程序中的 函數:void CSortListCtrl::OnCustomDraw(NMHDR* pNMHDR, LRESULT* pResult)
三、使用方法 //設置整行選擇和帶表格線模式
m_MyListCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
//設置列頭
m_MyListCtrl.SetHeadings(_T("ID,100;Name,100;BirthDate,100"));
//添加項目
m_MyListCtrl.AddItem(_T("1"),_T("栾義明"),_T("1979-07-25"));
m_MyListCtrl.AddItem(_T("2"),_T("張偉"),_T("1982-03-26"));
//設置單元格顏色。
m_MyListCtrl.SetItemColor(0,1,RGB(255,0,0),RGB(0,255,0));