SDK ListViewは、1行1列の文字色/背景色を変更します.


ウィンドウクラスを登録し、CreateWindowExはウィンドウを作成し、この関数でListViewを作成し、ITEMを追加します.
ウィンドウメッセージ処理関数における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」を参照してください.