clistctrl改变单元格的背景颜色


void CDiskDlg::OnCustomdrawList1(NMHDR *pNMHDR, LRESULT *pResult)

{
LPNMCUSTOMDRAW pNMCD = reinterpret_cast<LPNMCUSTOMDRAW>(pNMHDR);
// TODO: Add your control notification handler code here
//*pResult = 0;
NMLVCUSTOMDRAW* nmcd=(NMLVCUSTOMDRAW*)pNMHDR;
*pResult=CDRF_DODEFAULT;


int row;
int col;


switch(nmcd->nmcd.dwDrawStage)
{
case CDDS_PREPAINT:
//if(m_bCustomDraw)
*pResult=CDRF_NOTIFYITEMDRAW; // else CDRF_DODEFAULT which stops notyfication messages
return;


case CDDS_ITEMPREPAINT:
*pResult=CDRF_NOTIFYSUBITEMDRAW;
return;


case CDDS_SUBITEM|CDDS_ITEMPREPAINT:
{
*pResult=0;
row=nmcd->nmcd.dwItemSpec;
col=nmcd->iSubItem;


CString str=mList.GetItemText(row,col);


CRect rect;
CDC* pDC=CDC::FromHandle(nmcd->nmcd.hdc);


if(col>0)
mList.GetSubItemRect(row,col,LVIR_BOUNDS,rect);
else
mList.GetItemRect(row,&rect,LVIR_LABEL);


UINT uCode=DT_LEFT;


if(row == 1&& col == 1)//设置第2行第2列单元格颜色
{
COLORREF kolor=0xffb010;


if(GetFocus()==this)
kolor=0x000000;


CBrush brush(kolor);
pDC->FillRect(&rect,&brush);
}


rect.OffsetRect(5,0);
pDC->DrawText(str,&rect,uCode);
*pResult=CDRF_SKIPDEFAULT;
break;
}
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值