ListCtrl设置单个单元格颜色的实现
2012-03-11 14:00
375 查看
近日的开发中,需要对List中某个单元格的颜色进行处理,以用来显示不同的效果,提示不同的状态,在网上找了不少资料,发现这一种是最简单的,最适合目前的需求。该文章的原址:http://hi.baidu.com/crazykay/blog/item/aa3e2b45f076773586947322.html,再次感谢作者。
下面我稍微做了点修改,这里仅仅记录一下。
实现这个的最简单的方法就是重载ListCtrl的NM_CUSTOMDRAW消息,如下:
ON_NOTIFY(NM_CUSTOMDRAW, IDC_LIST1, &Clistctrl_testDlg::OnNMCustomdrawList1)
然后在相关函数中添加处理代码:
上面的代码仅仅是个例子,可以选择性地设置每个单元格的颜色,实际使用时,需要按照特殊需求进行差异化处理了!
下面我稍微做了点修改,这里仅仅记录一下。
实现这个的最简单的方法就是重载ListCtrl的NM_CUSTOMDRAW消息,如下:
ON_NOTIFY(NM_CUSTOMDRAW, IDC_LIST1, &Clistctrl_testDlg::OnNMCustomdrawList1)
然后在相关函数中添加处理代码:
NMLVCUSTOMDRAW* pLVCD = reinterpret_cast<NMLVCUSTOMDRAW*>(pNMHDR); if ( CDDS_PREPAINT ==pLVCD->nmcd.dwDrawStage ) { *pResult = CDRF_NOTIFYITEMDRAW; } else if ( CDDS_ITEMPREPAINT == pLVCD->nmcd.dwDrawStage ) { // This is the notification message for an item. We'll request // notifications before each subitem's prepaint stage. *pResult = CDRF_NOTIFYSUBITEMDRAW; } else if ( (CDDS_ITEMPREPAINT | CDDS_SUBITEM) == pLVCD->nmcd.dwDrawStage ) { int nItem=static_cast<int>(pLVCD->nmcd.dwItemSpec ); switch(pLVCD->iSubItem) { case 2: case 4: { if (nItem % 2 == 0) { COLORREF clrNewTextColor, clrNewBkColor; clrNewTextColor = RGB(0,0,0); clrNewBkColor = RGB(198,202,198); pLVCD->clrText =clrNewTextColor; pLVCD->clrTextBk =clrNewBkColor; *pResult = CDRF_DODEFAULT; break; } } default: pLVCD->clrText = RGB(0,0,0); pLVCD->clrTextBk = RGB(255,255,255); *pResult = CDRF_DODEFAULT; break; } }
上面的代码仅仅是个例子,可以选择性地设置每个单元格的颜色,实际使用时,需要按照特殊需求进行差异化处理了!
相关文章推荐
- ListCtrl设置单个单元格颜色的实现 .
- ListCtrl设置单个单元格颜色的实现
- “设置jtable单元格颜色,以及jtable中实现复选框”的程序
- 如何设置'REUSE_ALV_GRID_DISPLAY'的单个单元格的颜色
- easyui框架 实现单个单元格修改背景颜色
- 如何设置'REUSE_ALV_GRID_DISPLAY'的单个单元格的颜色
- 如何设置'REUSE_ALV_GRID_DISPLAY'的单个单元格的颜色
- 如何设置'REUSE_ALV_GRID_DISPLAY'的单个单元格的颜色
- jTable设置单个单元格颜色
- 如何设置'REUSE_ALV_GRID_DISPLAY'的单个单元格的颜色
- 如何设置'REUSE_ALV_GRID_DISPLAY'的单个单元格的颜色
- 如何设置'REUSE_ALV_GRID_DISPLAY'的单个单元格的颜色
- 如何设置'REUSE_ALV_GRID_DISPLAY'的单个单元格的颜色
- 一个牛人写的“设置jtable单元格颜色,以及jtable中实现复选框”的程序,备忘
- Android 单个TextView中文字颜色,超链接等效果的设置
- html中table为每个单元格设置不同颜色和宽度
- Excel公式设置单元格颜色
- Excel实现单元格下拉菜单并设置变色
- Extjs grid设置单元格字体颜色,及单元格背景色
- VBA:设置单元格是否填充单元格颜色