C++-MFC Office风格的界面,ListCtrl点击选中后高亮

一个函数就可以搞定:
void CListCtrlView::OnCustomdrawList( 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 )
	{    
		//当前选中的item  
		int nItem=(pLVCD->nmcd.dwItemSpec);
		COLORREF crText,crBk;
		//若选中
		if(m_listCtrl->GetCheck(nItem) == 1)
		{
			crText = RGB(0,0,0);//RGB(32,32,255);
			crBk =RGB(153,204,255);
		}
	//若取消选中
		else{
			crText = RGB(0,0,0);
			crBk = RGB(240,247,249);
		}
		pLVCD->clrText = crText;
		pLVCD->clrTextBk = crBk;
		*pResult = CDRF_NEWFONT;
	}    
}
只需要改红色部分(文件名),声明一下。

猜你喜欢

转载自blog.csdn.net/sheyun1876/article/details/80583517