欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > c/c++ >内容正文

c/c++

在VC中 改变List列表中一行的颜色

发布时间:2024/4/17 c/c++ 52 豆豆
生活随笔 收集整理的这篇文章主要介绍了 在VC中 改变List列表中一行的颜色 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

1. 在.H文件中定义 

protected:

void OnDrawColorForMyList( NMHDR* pNmHdr, LRESULT *pResult );

2.在.CPP中加入消息映射

ON_NOTIFY( NM_CUSTOMDRAW, IDC_LIST, OnDrawColorForMyList ) //为改变颜色添加的消息

3.在.CPP中加入函数定义

//改变 m_List 控件单行的颜色

void CMyService::OnDrawColorForMyList( 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 );

//设置背景色

if( nItem%2 ==0 )

{

clrNewBkColor = RGB( 240, 240, 240 ); //偶数行背景色为灰色

}

else

{

clrNewBkColor = RGB( 255, 255, 255 ); //奇数行背景色为白色

}

// pLVCD->clrText = clrNewTextColor;

pLVCD->clrTextBk = clrNewBkColor;

        *pResult = CDRF_DODEFAULT;

}

}

转载于:https://www.cnblogs.com/carekee/articles/1749098.html

总结

以上是生活随笔为你收集整理的在VC中 改变List列表中一行的颜色的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。