Ребята, может кто-нибудь дать мне краткий обзор того, как изменить цвет фона элемента управления CEdit во время выполнения? Я хочу иметь возможность изменить фон на красный, если поле равно нулю и нормальный белый в противном случае.MFC: Изменение цвета CEdit
4
A
ответ
6
Вы не можете сделать это с помощью простого CEdit, вам нужно переопределить несколько бит.
Реализовать свой собственный обработчик ON_WM_CTLCOLOR_REFLECT, а затем вернуть цветной CBrush в обработчике:
(грубо говоря, вам нужно поставить обычное управление ресурсами там, rememebr удалить кисть в деструкторе)
class CColorEdit : public CEdit
{
....
CBrush m_brBkgnd;
afx_msg HBRUSH CtlColor(CDC* pDC, UINT nCtlColor)
{
m_brBkgnd.DeleteObject();
m_brBkgnd.CreateSolidBrush(nCtlColor);
}
}
3
Это также может быть сделано без получения от CEdit:
- Добавить
ON_WM_CTLCOLOR()
вBEGIN_MESSAGE_MAP()
блоке кода вашего диалога. Добавить
OnCltColor()
в свой класс диалогового окна:afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
Реализовать
OnCtlColor()
так:HBRUSH CMyDialog::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { if ((CTLCOLOR_EDIT == nCtlColor) && (IDC_MY_EDIT == pWnd->GetDlgCtrlID())) { return m_brMyEditBk; //Create this brush in OnInitDialog() and destroy in destructor } return CDialog::OnCtlColor(pDC, pWnd, nCtlColor); }
Смежные вопросы
- 1. MFC CEdit pass pParentWnd
- 2. MFC CEdit текст заполнителя
- 3. MFC custom CEdit password support
- 4. Как прокрутить CEdit (MFC) плавно
- 5. CEdit и GetwindowText в MFC
- 6. Событие числовой проверки CEdit C++ MFC
- 7. Как изменить стиль текста управления MFC CEdit?
- 8. MFC CEdit символ delete not working
- 9. Изменение цвета фона меню в диалоге MFC
- 10. C++ MFC Изменение цвета фона радиокамера
- 11. изменение цвета фона диалогового окна mfc
- 12. Изменение размера элементов управления в MFC
- 13. Литье CWnd указатель на указатель CEdit в MFC
- 14. CEdit control MFC, помещая курсор в конец строки после SetWindowText
- 15. MFC change mouse cursor on hover over CEdit control
- 16. MFC: не получил сообщение EN_CHANGE в производном CEdit
- 17. Обращение с клавишей со стрелкой в cedit control mfc
- 18. Вернитесь Жирной пуля, которая отображается при CEdit с ES_PASSWORD MFC
- 19. Как реализовать обработчик событий для MFC CEdit ON_EN_SETFOCUS?
- 20. Изменение цвета фона формы в MFC файл сценария ресурсов
- 21. Изменение цвета фона для диасказмы флажок в поле MFC
- 22. Изменение цвета конкретного символа в элементе в CListCtrl в MFC
- 23. MFC: Ring - без изменения цвета
- 24. CMenu цвета границы на MFC
- 25. Детское окно (CEdit), теряющее фокус
- 26. CEdit edit_box имеет HWND нуль
- 27. CEdit, WM_PASTE
- 28. Как заставить CEdit правильно прокручиваться?
- 29. Изменение цвета/текста цвета SLComposeSheetConfigurationItem
- 30. ListView Изменение цвета цвета onactivityResult