CListCtrl修改指定行的颜色
来源:互联网 发布:sqlserver创建视图语句 编辑:程序博客网 时间:2024/05/17 01:02
添加自己的列表控件类CMyListCtrl m_List派生CListCtrl.
//添加消息ON_NOTIFY_REFLECT(NM_CUSTOMDRAW, &CMyListCtrl::OnNMCustomdraw)//函数实现void CMyListCtrl::OnNMCustomdraw(NMHDR *pNMHDR, LRESULT *pResult){ /*修改内容: 改用switch case语句 case语句中增加了CDDS_ITEMPREPAINT和CDDS_ITEMPOSTPAINT两个状态判断 同时在改变颜色时增加了一个函数SetItemState */ static BOOL s_bThisItemSelect = FALSE; NMLVCUSTOMDRAW* pLVCD = reinterpret_cast<LPNMLVCUSTOMDRAW>(pNMHDR); int nItemIndex=pLVCD->nmcd.dwItemSpec; *pResult = CDRF_DODEFAULT; switch (pLVCD->nmcd.dwDrawStage) { case CDDS_PREPAINT: *pResult = CDRF_NOTIFYITEMDRAW; break; case CDDS_ITEMPREPAINT: { UINT ordin = pLVCD->nmcd.lItemlParam; s_bThisItemSelect = FALSE; //选中行颜色改变 if (GetItemState(nItemIndex,LVIS_SELECTED) == LVIS_SELECTED/*pLVCD->nmcd.uItemState & CDIS_SELECTED*/) { s_bThisItemSelect = TRUE; //增加了下面这个SetItemState函数 SetItemState(pLVCD->nmcd.dwItemSpec, 0, LVIS_SELECTED); pLVCD->clrText = RGB(0,0,255)/*m_SelectItemTextColor*/; pLVCD->clrTextBk =RGB(255,128,0)/*m_SelectItemBkColor*/; } else if((nItemIndex==m_nHoverIndex)) { //热点行 pLVCD->clrTextBk=m_HoverItemBkColor; pLVCD->clrText=m_HoverItemTextColor; } else if(nItemIndex % 2==0) {//偶数行 比如 0、2、4、6 pLVCD->clrTextBk=m_EvenItemBkColor; pLVCD->clrText=m_EvenItemTextColor; } else {//奇数行 比如 1、3、5、7 pLVCD->clrTextBk=m_OddItemBkColor; pLVCD->clrText=m_OddItemTextColor; } *pResult = CDRF_NOTIFYPOSTPAINT; } break; //加了一个状体判断 case CDDS_ITEMPOSTPAINT: if (s_bThisItemSelect) SetItemState(pLVCD->nmcd.dwItemSpec, 0xFF, LVIS_SELECTED); break; } } //添加PreSubclassWindowvoid CMyListCtrl::PreSubclassWindow(){// TODO: Add your specialized code here and/or call the base class ModifyStyle(LVS_SHOWSELALWAYS, LVS_SINGLESEL); // TRICKY!!! can`t with LVS_SHOWSELALWAYS SetExtendedStyle(GetExtendedStyle()|LVS_EX_FULLROWSELECT); CListCtrl::PreSubclassWindow(); }
我空间代码可以自己看下。http://download.csdn.net/detail/lcalqf/7815847
0 0
- CListCtrl修改指定行的颜色
- 指定改变CListCtrl中某一行的颜色
- 修改 CListCtrl 的标题栏颜色;重写 CListCtrl 标题栏
- 修改一个完全颜色的CListCtrl类
- 修改一个完全颜色的CListCtrl类
- CListCtrl行高的修改
- CListCtrl行高的修改
- CListCtrl行高的修改
- CListCtrl行高的修改
- CListCtrl行高的修改
- 改变CListCtrl某行的颜色
- 设置某一行背景颜色的CListCtrl
- 改变CListCtrl中某一行的颜色
- 设置某一行背景颜色的CListCtrl
- 设置某一行背景颜色的CListCtrl
- 可修改指定单元格颜色的ListCtrl
- 修改数据窗口指定单元的颜色
- 设置CListCtrl单元格的颜色
- Tomcat 集群配置
- 技术精英谈IT程序员的出路在哪里——很经典
- hadoop-client和jetty的冲突解决
- java中异常这种技术框架是怎么工作的?
- Raphaeljs入门到精通(一)
- CListCtrl修改指定行的颜色
- FORM 个性化职位获取职务序列LOV
- 自定义仪表盘DashBoard - -kankanstyle
- MapGIS 10入门程序,适合初学者
- 约瑟夫环问题
- bochs 的安装
- best coder 第六场
- 细数隐藏在DevStore的五款开源游戏引擎
- 【程序设计】typedef与函数指针