Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Visual C++/MFC/WTL > Как изменить цвет текста? |
Автор: LoadSPB 7.6.2009, 00:59 | ||
Создаю в мастере мфс однодокументное приложение. Далее - менюшку, с обработчиком вызывающим окошко выбора цвета:
Вопрос: как теперь задать цвет текста? |
Автор: SalleX 7.6.2009, 01:40 |
HBRUSH CtexteditorView::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); delete brush; brush=new CBrush; brush->CreateSolidBrush(bkColor); pDC->SetTextColor(Color); return *brush; } |
Автор: SalleX 7.6.2009, 01:58 | ||
А забыл... про фон.
|
Автор: LoadSPB 7.6.2009, 11:28 |
Пробовал примерно также, только вместо вызова CDialog::OnCtlColor вызываю CEditView::OnCtlColor Только ничего не меняется. Даже если цвет прописывать вручную. Если туда ещё запихнуть AfxMessageBoх - ничего не выдается. Вероятно этот OnCtlColor не вызывается просто... Хотя в карте сообщений добавлена ON_WM_CTLCOLOR() ![]() |
Автор: Earnest 7.6.2009, 14:14 |
А цвет какого текста ты менять собрался? Того, что в самом вью? Тогда тебе нужен reflect, т.к. WM_CTLCOLOR приходит только для дочерних окон. Все почти тоже самое, только в карту прописывается ON_WM_CTLCOLOR_REFLECT, а сигнатура обработчика немного меняется: afx_msg HBRUSH CtlColor ( CDC* pDC, UINT nCtlColor ); |
Автор: LoadSPB 7.6.2009, 14:45 |
Да, спасибо, всё получилось! |