当前位置:首页 > 开发 > 编程语言 > 编程 > 正文

CListCtrl 交替行绘制不同背景色

发表于: 2011-07-01   作者:chicony   来源:转载   浏览次数:
摘要: 此响应WM_ERASEBKGND消息 BOOL MyList::OnEraseBkgnd(CDC* pDC) {  // TODO: 在此添加消息处理程序代码和/或调用默认值      CRect rect;   GetClientRect(rect);   POINT mypoint

此响应WM_ERASEBKGND消息
BOOL MyList::OnEraseBkgnd(CDC* pDC)
{
 // TODO: 在此添加消息处理程序代码和/或调用默认值
  
  CRect rect;
  GetClientRect(rect);

  POINT mypoint; 
 
  CBrush brush0(m_colRow1);
  CBrush brush1(m_colRow2);

 
 int chunk_height=GetCountPerPage();
 pDC->FillRect(&rect,&brush1);
 for (int i=0;i<=chunk_height;i++)
 {
  
 
 GetItemPosition(i,&mypoint);
 rect.top=mypoint.y ;
 GetItemPosition(i+1,&mypoint);
 rect.bottom =mypoint.y;
 pDC->FillRect(&rect,i %2 ? &brush1 : &brush0);

 }
  brush0.DeleteObject();
  brush1.DeleteObject();
  return FALSE;
}
 
此响应消息NM_CUSTOMDRAW
void MyList::OnNMCustomdraw(NMHDR *pNMHDR, LRESULT *pResult)
{
 *pResult = 0;  
  LPNMLVCUSTOMDRAW  lplvcd = (LPNMLVCUSTOMDRAW)pNMHDR;
  int iRow = lplvcd->nmcd.dwItemSpec;
  switch(lplvcd->nmcd.dwDrawStage)
  {
    case CDDS_PREPAINT :
    {
      *pResult = CDRF_NOTIFYITEMDRAW;
      return;
    }
    // Modify item text and or background
    case CDDS_ITEMPREPAINT:
    {
      lplvcd->clrText = RGB(0,0,0);
      // If you want the sub items the same as the item,
      // set *pResult to CDRF_NEWFONT
      *pResult = CDRF_NOTIFYSUBITEMDRAW;
      return;
    }
    // Modify sub item text and/or background
    case CDDS_SUBITEM | CDDS_PREPAINT | CDDS_ITEM:
    {
  
        if(iRow %2){
         lplvcd->clrTextBk = m_colRow2;
        }
        else{
          lplvcd->clrTextBk = m_colRow1;
        }
  
        *pResult = CDRF_DODEFAULT;
        return;
    }
  }
}

CListCtrl 交替行绘制不同背景色

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
  最近做项目用到Repeater,没有好的样式只能套一个Table来设置交替行颜色、鼠标经过颜色、单击颜
最近做项目用到Repeater,没有好的样式只能套一个Table来设置交替行颜色、鼠标经过颜色、单击颜色,
(1)StyleTable.java文件用于实现各种上面提到的功能。 import java.awt.Color; import java.awt.C
一、DataGrid 继承DataGrid添加 /**用于设置每行的颜色 * uint表示返回的颜色值 * @param item 对应
先看看效果: 如何让表格相邻行的颜色不同呢? 如何让表格的行的颜色间隔不同呢? 表格的行间隔变色 有
先看看效果: 如何让表格相邻行的颜色不同呢? 如何让表格的行的颜色间隔不同呢? 表格的行间隔变色 有
先看看效果: 如何让表格相邻行的颜色不同呢? 如何让表格的行的颜色间隔不同呢? 表格的行间隔变色 有
先看看效果: 如何让表格相邻行的颜色不同呢? 如何让表格的行的颜色间隔不同呢? 表格的行间隔变色 有
先看看效果: 如何让表格相邻行的颜色不同呢? 如何让表格的行的颜色间隔不同呢? 表格的行间隔变色 有
Chartkick是一个图表绘制工具,特点是UI美观、使用简单,并且支持IE6在内的大多数浏览器。之所以说
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号