Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как изменить цвет текста? 
V
    Опции темы
LoadSPB
Дата 7.6.2009, 00:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 5.3.2008

Репутация: нет
Всего: 1



Создаю в мастере мфс однодокументное приложение.
Далее - менюшку, с обработчиком вызывающим окошко выбора цвета:
Код

void CtexteditorView::OnEditColor()
{
    CColorDialog dlg;
    COLORREF color;
    if (dlg.DoModal()){
        color = dlg.GetColor();
    }
    
    
}


Вопрос: как теперь задать цвет текста?
PM MAIL   Вверх
SalleX
Дата 7.6.2009, 01:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 16.11.2008

Репутация: нет
Всего: нет



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;
    
    
}

PM MAIL   Вверх
SalleX
Дата 7.6.2009, 01:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 16.11.2008

Репутация: нет
Всего: нет



А забыл... про фон.
Код

COLORREF bkColor;

bkColor=RGB(255,255,255);

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, 02:05
PM MAIL   Вверх
LoadSPB
Дата 7.6.2009, 11:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 5.3.2008

Репутация: нет
Всего: 1



Пробовал примерно также, только вместо вызова CDialog::OnCtlColor вызываю CEditView::OnCtlColor
Только ничего не меняется. Даже если цвет прописывать вручную.
Если туда ещё запихнуть AfxMessageBoх - ничего не выдается. 

Вероятно этот OnCtlColor не вызывается просто... 
Хотя в карте сообщений добавлена ON_WM_CTLCOLOR()

 smile
PM MAIL   Вверх
Earnest
Дата 7.6.2009, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



А цвет какого текста ты менять собрался? Того, что в самом вью? Тогда тебе нужен reflect, т.к. WM_CTLCOLOR приходит только для дочерних окон. Все почти тоже самое, только в карту прописывается ON_WM_CTLCOLOR_REFLECT, а сигнатура обработчика немного меняется: afx_msg HBRUSH CtlColor ( CDC* pDC, UINT nCtlColor );


--------------------
...
PM   Вверх
LoadSPB
Дата 7.6.2009, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 5.3.2008

Репутация: нет
Всего: 1



Да, спасибо, всё получилось! 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0876 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.