CListCtrl各行背景不同出现的问题

coldplay968 2006-09-29 10:25:09
该代码来源于www.codeproject.com

m_colRow1 = RGB(240,247,249);
m_colRow2 = RGB(229,232,239);

BOOL MyClistCtrl::OnEraseBkgnd(CDC* pDC)
{ CRect rect;
MyClistCtrl::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;
}

我想把奇数行的背景设置为brush0,偶数行背景设置为brush1.
但是有了滚动条后就会出现问题,拖动滚动条后再现的所有行的背景都为brush0了.
偶数行没有设置为brush1
...全文
169 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
huamoran 2006-09-30
  • 打赏
  • 举报
回复
Debug看堆栈
coldplay968 2006-09-30
  • 打赏
  • 举报
回复
我顶
coldplay968 2006-09-30
  • 打赏
  • 举报
回复
up
coldplay968 2006-09-29
  • 打赏
  • 举报
回复
我调用SendMessage(WM_ERASEBKGND );
一拖动滚动条程序就会死掉.出现 "遇到问题需要关闭.我们对此引起的不便表示抱歉"
huamoran 2006-09-29
  • 打赏
  • 举报
回复
滚动后调用OnEraseBkgnd(CDC* pDC)
coldplay968 2006-09-29
  • 打赏
  • 举报
回复
主要是我的所有列并没有占满这个控件的宽度,最右边的多出来的空白列的背景颜色就会出现上述问题
coldplay968 2006-09-29
  • 打赏
  • 举报
回复
up

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧