Windows エクスプローラーをカスタマイズしたいと考えています。
私がやりたいことの 1 つは、ファイルに特別な条件がある場合に、リスト ビューでファイル名の色を変更することです。
ウィンドウのサブクラス化によって可能ですか? それともAPIフックが必要ですか?
これを行う最善の方法を教えてください。
ありがとう。
Windows エクスプローラーをカスタマイズしたいと考えています。
私がやりたいことの 1 つは、ファイルに特別な条件がある場合に、リスト ビューでファイル名の色を変更することです。
ウィンドウのサブクラス化によって可能ですか? それともAPIフックが必要ですか?
これを行う最善の方法を教えてください。
ありがとう。
はい、ウィンドウのサブクラス化でそれを行うことができます:
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;
}
}