我想自定义Windows资源管理器。
我想做的一件事是,如果文件有特殊条件,在列表视图中改变文件名的颜色。
这是可能的窗口子类化吗?还是需要API挂钩?
请让我知道最好的方法是什么。
谢谢。
是的,您可以通过窗口子类化来实现:
添加NM_CUSTOMDRAW处理程序到您的clistctrl派生类
void CMyList::OnCustomDraw(NMHDR* pNMHDR, LRESULT* pResult)
{
LPNMLVCUSTOMDRAW lplvcd = (LPNMLVCUSTOMDRAW)pNMHDR;
switch (lplvcd->nmcd.dwDrawStage)
{
case CDDS_PREPAINT:
*pResult = CDRF_NOTIFYITEMDRAW;
break;
case CDDS_ITEMPREPAINT:
*pResult = CDRF_NOTIFYSUBITEMDRAW;
break;
case CDDS_ITEMPREPAINT | CDDS_SUBITEM:
lplvcd->clrText = **MY_COLOR**;
*pResult = CDRF_DODEFAULT;
}
}