У меня есть элемент управления редактирования, не предназначенный только для чтения, для которого мне нужно изменить цвета, поэтому я обрабатываю 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;
}
Спасибо