CListCtrl的OnCustomDraw问题,高分求教
在自定义描画后,现在出现的问题是。
当我点击不同行的subitem时 反映(描画subitem)的速度很快
而当我点击的是同一行的subitem时,反映(描画subitem)的速度则很慢 大概0.5秒到1秒左右
请问是什么原因 要如何解决
大致代码如下
void CMstrListCtrl::OnCustomDraw(NMHDR* pNMHDR, LRESULT* pResult)
{
LPNMLVCUSTOMDRAW lplvcd = (LPNMLVCUSTOMDRAW)pNMHDR;
int subitem = lplvcd->iSubItem;
switch(lplvcd->nmcd.dwDrawStage)
{
case CDDS_PREPAINT:
*pResult = CDRF_NOTIFYSUBITEMDRAW;
break;
case CDDS_ITEMPREPAINT:
if((lplvcd->nmcd.dwItemSpec)%2 != 0)
{
lplvcd->clrTextBk = RGB(214, 227, 247);
}
//lplvcd->clrTextBk = RGB(0xAF,0xEE,0xEE);
*pResult = CDRF_NOTIFYSUBITEMDRAW;
break;
case CDDS_SUBITEM|CDDS_ITEMPREPAINT:
if(subitem == 0)
{
return;
}
if( (lplvcd->nmcd.uItemState & CDIS_FOCUS) ) {
if (lplvcd->nmcd.uItemState & CDIS_SELECTED) {
lplvcd->clrTextBk = RGB(0x66, 0x99, 0xFF);
lplvcd->clrText = RGB(0xFF, 0xFF, 0xFF);
lplvcd->nmcd.uItemState &= ~CDIS_SELECTED;
}
.......subitem 描画处理........
*pResult = CDRF_SKIPDEFAULT;
}
}
break;
default:
*pResult = CDRF_DODEFAULT;
break;
}