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
...全文
138 点赞 收藏 7
写回复
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
回复 点赞
发动态
发帖子
VC/MFC
创建于2007-09-28

7893

社区成员

42.1w+

社区内容

VC/MFC相关问题讨论
社区公告
暂无公告