改变 clistCtrl 的行背景色问题。 我对clistCtrl进行行修改,修改以后我想把行的背景色换掉,以示区别~请问这个怎么做m_List.SetBkColor(RGB(255, 255,0));仅仅是修改整个背景。没有现成的函数调用~谁写过的,讲讲方法或者代码贴一下,谢谢~~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://vckbase.com/document/viewdoc/?id=1480重载 我前两天查了好多资料,正好给你。 也可以重载DrawItem,但是比较麻烦,要自己绘void C_CodeList::OnCustomdrawList(NMHDR *pNMHDR, LRESULT *pResult){ // TODO: Add your control notification handler code here LPNMLVCUSTOMDRAW pnmCustDraw = (LPNMLVCUSTOMDRAW)pNMHDR; TRACEINFO(L"OnNMCustomdrawList1"); switch(pnmCustDraw->nmcd.dwDrawStage) { case CDDS_PREPAINT: *pResult = CDRF_NOTIFYITEMDRAW ; break; case CDDS_ITEMPREPAINT: { COLORREF clrCodeInvalidColor; clrCodeInvalidColor = RGB(0xff, 0x00, 0x00); pnmCustDraw->clrTextBk = clrCodeInvalidColor; } break; } case CDDS_SUBITEM: { break; } case CDDS_ITEMPOSTPAINT: { *pResult = CDRF_DODEFAULT; break; } default: *pResult = CDRF_DODEFAULT; break; } return ;} 下面是别人的代码 希望对你有帮助响应NM_CUSTOMDRAW进行重绘。。下面的代码演示了让ListCtrl隔行颜色不同的效果:ON_NOTIFY_REFLECT(NM_CUSTOMDRAW, OnCustomDraw)void CMyListCtrl::OnCustomDraw(NMHDR* pNMHDR, LRESULT* pResult){ LPNMLVCUSTOMDRAW lplvcd = (LPNMLVCUSTOMDRAW)pNMHDR; *pResult = 0; switch(lplvcd->nmcd.dwDrawStage) { case CDDS_PREPAINT : *pResult = CDRF_NOTIFYITEMDRAW; break; case CDDS_ITEMPREPAINT: *pResult = CDRF_NOTIFYSUBITEMDRAW; break; case CDDS_SUBITEM | CDDS_ITEMPREPAINT: if(lplvcd->nmcd.dwItemSpec % 2) { lplvcd->clrTextBk = RGB(255,255,200); } else { lplvcd->clrTextBk = RGB(255,255,255); } *pResult = CDRF_NEWFONT; break; }} 应该可以啊。获取你所选中的行的索引值。m_list.GetCurSel(),然后将楼上说的方法写成函数ChangeItemColor(int nSelect),就可以啊 加载的时候就调用了OnCustomDraw,而且还有NMHDR* pNMHDR, LRESULT* pResult这些参数,我点了以后哪去这些参数值啊 关于GetDlgItem(XXX)->UpdateData的一个小问题 mfc中 access有密码的 连接 directx 版本的简单问题。 什么工具可以把32x32的icon转换为16x16的icon? 求一江湖外挂,急用,500分送上。 关于程序的图标不能正确显示的问题 ×急×(高手帮帮小弟初学) 怎么拷贝一个图标到剪切板上 webbrowser组件问题(专题讨论) 我非常喜欢编程(胜过女友),可我很笨学的很苦,进步很慢!我该怎麽办???? 现在VC++的最新MFC 版本支持能从动态网页中提取数据没有?谢谢! 怎样取char*的大小? 可以HOOK 多个API吗?
重载
{
// TODO: Add your control notification handler code here
LPNMLVCUSTOMDRAW pnmCustDraw = (LPNMLVCUSTOMDRAW)pNMHDR; TRACEINFO(L"OnNMCustomdrawList1");
switch(pnmCustDraw->nmcd.dwDrawStage)
{
case CDDS_PREPAINT:
*pResult = CDRF_NOTIFYITEMDRAW ;
break; case CDDS_ITEMPREPAINT:
{
COLORREF clrCodeInvalidColor;
clrCodeInvalidColor = RGB(0xff, 0x00, 0x00); pnmCustDraw->clrTextBk = clrCodeInvalidColor; }
break;
}
case CDDS_SUBITEM:
{
break;
} case CDDS_ITEMPOSTPAINT:
{
*pResult = CDRF_DODEFAULT;
break;
}
default:
*pResult = CDRF_DODEFAULT;
break;
}
return ;
}
{
LPNMLVCUSTOMDRAW lplvcd = (LPNMLVCUSTOMDRAW)pNMHDR;
*pResult = 0; switch(lplvcd->nmcd.dwDrawStage)
{
case CDDS_PREPAINT :
*pResult = CDRF_NOTIFYITEMDRAW;
break;
case CDDS_ITEMPREPAINT:
*pResult = CDRF_NOTIFYSUBITEMDRAW;
break;
case CDDS_SUBITEM | CDDS_ITEMPREPAINT:
if(lplvcd->nmcd.dwItemSpec % 2)
{
lplvcd->clrTextBk = RGB(255,255,200);
}
else
{
lplvcd->clrTextBk = RGB(255,255,255);
}
*pResult = CDRF_NEWFONT;
break;
}
}