У меня есть не редактируемый элемент управления только для чтения, для которого мне нужно изменить цвета, поэтому я обрабатываю WM_CTLCOLOREDIT.Это работает хорошо, когда я печатаю непрерывно, но проблема в том, что, когда я нажимаю клавишу «Backspace», удаляю или даже начинаю печатать с середины существующего текста, дисплей весь не работаетЭто остается до тех пор, пока я не вызову перерисовку путем изменения размера родительского элемента и т. Д. Как это исправить?
Редактировать: Некоторые детали.Проблема возникает только тогда, когда цвет фона установлен, а не только цвет текста.Код выглядит так
ON_MESSAGE(WM_CTLCOLOREDIT, OnEditColor)
LRESULT CMyWindow::OnEditColor(WPARAM wp, LPARAM lp)
{
HDC hdc = (HDC)wp;
HWND hwnd = (HWND)lp;
if(hwnd == m_edit.GetSafeHwnd())
{
// SetBkMode(hdc, TRANSPARENT);
MyControlInfo*pcti;// accessed from somewhere
SetTextColor(hdc, pcti->theme.clrText);
// return (LRESULT)pcti->brush.GetSafeHandle();
}
return 0;
}
Спасибо