在VC中 改变List列表中一行的颜色
1. 在.H文件中定義?
protected:
void OnDrawColorForMyList( NMHDR* pNmHdr, LRESULT *pResult );
2.在.CPP中加入消息映射
ON_NOTIFY( NM_CUSTOMDRAW, IDC_LIST, OnDrawColorForMyList ) //為改變顏色添加的消息
3.在.CPP中加入函數(shù)定義
//改變 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 );
//設(shè)置背景色
if( nItem%2 ==0 )
{
clrNewBkColor = RGB( 240, 240, 240 ); //偶數(shù)行背景色為灰色
}
else
{
clrNewBkColor = RGB( 255, 255, 255 ); //奇數(shù)行背景色為白色
}
// pLVCD->clrText = clrNewTextColor;
pLVCD->clrTextBk = clrNewBkColor;
?? ? ? ?*pResult = CDRF_DODEFAULT;
}
}
轉(zhuǎn)載于:https://www.cnblogs.com/carekee/articles/1749098.html
總結(jié)
以上是生活随笔為你收集整理的在VC中 改变List列表中一行的颜色的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 51单片机常用寄存器速查
- 下一篇: 胡泳:网络为王