龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VC开发 >

VC可设置单元格颜色的ClistCtrl类[图]

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
一、说明: CListCtrl控件简单易用,美中不足的是不能设置单元格的颜色,作者试着扩展了CListCtrl类,提供了一个可设置单元格颜色的函数, SetItemColor(int nItem, int nSubItem, COLORREF clrText, C

  一、说明:

  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));

精彩图集

赞助商链接