1

Windows エクスプローラーをカスタマイズしたいと考えています。

私がやりたいことの 1 つは、ファイルに特別な条件がある場合に、リスト ビューでファイル名の色を変更することです。
ウィンドウのサブクラス化によって可能ですか? それともAPIフックが必要ですか?
これを行う最善の方法を教えてください。

ありがとう。

4

1 に答える 1

0

はい、ウィンドウのサブクラス化でそれを行うことができます:

CListCtrl 派生クラスに NM_CUSTOMDRAW ハンドラーを追加します。

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 に答える