CListCtrl表格项的渲染

为CListCtrl组件添加消息NM_CUSTOMDRAW处理:

void Cpage2_listCtrl::OnNMCustomdrawListEarthwormThread(NMHDR *pNMHDR, LRESULT *pResult)

{
NMLVCUSTOMDRAW* pLVCD = reinterpret_cast<NMLVCUSTOMDRAW*>( pNMHDR );


*pResult = CDRF_DODEFAULT;


if ( CDDS_PREPAINT == pLVCD->nmcd.dwDrawStage )
{
*pResult = CDRF_NOTIFYITEMDRAW;
}
else if ( CDDS_ITEMPREPAINT == pLVCD->nmcd.dwDrawStage )
{
*pResult = CDRF_NOTIFYSUBITEMDRAW;
}
else if ( (CDDS_ITEMPREPAINT | CDDS_SUBITEM) == pLVCD->nmcd.dwDrawStage )
{
COLORREF clrNewTextColor, clrNewBkColor;
int    nItem = static_cast<int>(pLVCD->nmcd.dwItemSpec );
//如果当前进程Dead,则显示字体为红色,否则为黑色
CString cCurStr;
cCurStr = m_listCtrl.GetItemText(nItem,2);
//给Dead、Stop、NoExec、Alive的线程行添加颜色标记
if(CString("Dead")==cCurStr||CString("Stop")==cCurStr)
{
clrNewTextColor = RGB( 255, 0, 0 );      //字体---红色
clrNewBkColor   = RGB( 240, 200, 240 );  //背景---暗红色
}else if(CString("NoExec")==cCurStr)        
{
clrNewTextColor = RGB( 255,   0, 0   );  //字体---深蓝色
clrNewBkColor   = RGB( 128, 255, 255 );  //背景---淡蓝色
}else{
clrNewTextColor = RGB( 0, 0, 0 );        //字体---黑色
clrNewBkColor   = RGB( 255, 255, 255 );  //背景---白色
}
pLVCD->clrText = clrNewTextColor;
pLVCD->clrTextBk = clrNewBkColor;
*pResult = CDRF_DODEFAULT;

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值