我有3个coloumns列表视图.前两列有值,第三列是空的.我想知道,我怎样才能在第三列中插入彩色文本?我不想为整行着色,只有第三列有颜色变化.
提前致谢!
kampi
您可以使用CustomDraw处理程序执行此操作,参考:MSDN在Visual C++中开发自定义绘制控件.
基本上它很简单(和MSDN很长),但归结为以下几点:
将其中一个添加到通常的位置:
ON_NOTIFY_REFLECT(NM_CUSTOMDRAW, OnCustomDraw)
然后将此方法添加到类中.
void CMyListView::OnCustomDraw(NMHDR* nmhdr, LRESULT* result)
{
LPNMLVCUSTOMDRAW vcd = (LPNMLVCUSTOMDRAW)nmhdr;
switch(vcd->nmcd.dwDrawStage)
{
case CDDS_PREPAINT :
{
*result = CDRF_NOTIFYITEMDRAW;
break;
}
case CDDS_ITEMPREPAINT:
{
vcd->clrText = RGB(255,0,255); //change the colour of the second row.
*result = CDRF_NOTIFYSUBITEMDRAW;
break;
}
default:
*result = 0;
break;
}
return;
}