CListCtrl 隔行变色

该博客介绍了如何使用CListCtrl控件实现隔行变色以及选中项高亮显示的效果。通过响应ON_NOTIFY消息,处理NM_CUSTOMDRAW通知,根据项的状态和位置改变文字颜色及背景色,达到视觉增强的效果。
摘要由CSDN通过智能技术生成

响应消息

ON_NOTIFY(NM_CUSTOMDRAW, ListCtrl的ID, OnNMCustomdrawList)

 

实现函数OnNMCustomdrawList

 

void CFinishWellToFind::OnNMCustomdrawList(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 );

  POSITION pos = m_ListC

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值