SDK ListViewは、1行1列の文字色/背景色を変更します.
ウィンドウクラスを登録し、CreateWindowExはウィンドウを作成し、この関数でListViewを作成し、ITEMを追加します.
ウィンドウメッセージ処理関数におけるWM_の処理NOTIFYのNM_CUSTOMDRAWメッセージ、コードフレームワークは以下の通りです.
注意しなければならないのは、SubItemの色を変更するつもりがなければ、clrTextを変更する必要があります.そうしないと、前回の色が使用されます.
詳細はMSDN、キーワード「NM_CUSTOMDRAW」を参照してください.
ウィンドウメッセージ処理関数におけるWM_の処理NOTIFYのNM_CUSTOMDRAWメッセージ、コードフレームワークは以下の通りです.
LRESULT DoMsg(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch (uMsg)
{
case WM_CREATE:
{
//do some thing
}
break;
case WM_CLOSE:
{
//do some thing
}
break;
case WM_NOTIFY:
{
LPNMHDR pNmhdr = (LPNMHDR)lParam;
switch (pNmhdr->code)
{
case NM_CUSTOMDRAW:
{
// ListView ,
LPNMLVCUSTOMDRAW lplvcd = (LPNMLVCUSTOMDRAW)lParam;
switch (lplvcd->nmcd.dwDrawStage)
{
case CDDS_PREPAINT:
{
return CDRF_NOTIFYSUBITEMDRAW;
}
break;
case CDDS_ITEMPREPAINT:
{
return CDRF_NOTIFYSUBITEMDRAW;
}
break;
case (CDDS_ITEMPREPAINT|CDDS_SUBITEM):
{
/*
lplvcd->nmcd.dwItemSpec//
lplvcd->iSubItem//
lplvcd->clrText = RGB(255, 0, 0);//
lplvcd->clrTextBk// ,
*/
return CDRF_DODEFAULT;
}
break;
}
}
break;
default:
break;
}
}
break;
default:
return DefWindowProc(hWnd, uMsg, wParam, lParam);
}
return S_OK;
}
注意しなければならないのは、SubItemの色を変更するつもりがなければ、clrTextを変更する必要があります.そうしないと、前回の色が使用されます.
詳細はMSDN、キーワード「NM_CUSTOMDRAW」を参照してください.