1

我想自定义 Windows 资源管理器。

如果文件有特殊条件,我想做的一件事是在列表视图中更改文件名的颜色。
是否可以通过窗口子类化?还是需要 api 挂钩?
请让我知道最好的方法是什么。

谢谢。

4

1 回答 1

0

是的,您可以使用窗口子类化来做到这一点:

将 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;
}

}

于 2011-05-02T17:44:10.813 回答