Ваш обработчик сообщений должен выглядеть так:
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_CTLCOLOREDIT:
{
HBRUSH hBrush = CreateSolidBrush(RGB(255,0,0));
::SelectObject((HDC)wParam, (HGDIOBJ)hBrush);
break;
}
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}
Убедитесь, что вы не вызываете DefWindowProc, который победит переопределение.