У меня есть диалоговое окно, в котором поле редактирования отключено, но текст должен отображаться красным цветом, а не серым по умолчанию.Я попробовал следующее:
void CMyEdit::OnEnable(BOOL bEnable)
{
CEdit::OnEnable(bEnable);
if (bEnable)
{
m_BackGroundColor = kRGBWhite;
}
else
{
m_BackGroundColor = kRGBDefaultGray;
}
m_TextColor = kRGBRed;
m_BackgroundBrush.DeleteObject();
m_BackgroundBrush.CreateSolidBrush(m_BackGroundColor);
Invalidate();
}
Но текст по-прежнему отображается только серым цветом.Но если я уберу вызов базового класса CEdit::OnEnable(bEnable);
, тогда вступит в силу новый цвет текста.Может кто-нибудь объяснить, что не так в коде?
Спасибо за ваше время.
ура ...
РЕДАКТИРОВАТЬ: ( Перемещение моегокомментарий к редактированию ) Извините, я забыл упомянуть об этом в моем оригинальном сообщении.Вместо обработки ON_WM_CTLCOLOR () обрабатывается ON_WM_CTLCOLOR_REFLECT ().Чего я не понимаю, так это того, что при удалении вызова базового класса цвет текста меняется на указанный, но при сохранении его цвет меняется только на серый по умолчанию.