В родительском элементе элемента управления редактирования обработайте сообщение WM_CTLCOLORSTATIC , wParam этого сообщения - это HDC, который собирается нарисовать элементом управления Edit,
для большинства сообщений CTLCOLOR, если вы устанавливаете цвета текста и фона в этот DC, элемент управления будет использовать заданные вами цвета.
Вы также можете вернуть HBRUSH, и контроллер будет использовать его для любой кисти, которую он будет делать, но многие элементы управления не используют кисти сильно, так что для некоторых эффект будет ограниченным
CTLCOLOR сообщения. Здесь лучше всего вернуть кисть DC и установить цвет кисти DC в соответствии с BkColor DC.
LRESULT lRet = 0; // return value for our WindowProc.
COLORREF crBk = RGB(255,0,0); // use RED for Background.
...
case WM_CTLCOLORSTATIC:
{
HDC hdc = (HDC)wParam;
HWND hwnd = (HWND)lParam;
// if multiple edits and only one should be colored, use
// the control id to tell them apart.
//
if (GetDlgCtrlId(hwnd) == IDC_EDIT_RECOLOR)
{
SetBkColor(hdc, crBk); // Set to red
SetDCBrushColor(hdc, crBk);
lRet = (LRESULT) GetStockObject(DC_BRUSH); // return a DC brush.
}
else
{
lRet = DefWindowProc(hwnd, uMsg, wParam, lParam);
}
}
break;