Цвет шрифта

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
Fil
Сообщения: 41
Зарегистрирован: 30 авг 2006, 17:03

18 июн 2007, 22:01

Привет!

Как можно изменить цвет шрифта в EditBox диалогового окна.
Работаю в Visual C++ 6.0.

С уважением, Fil!
Аватара пользователя
WinMain
Сообщения: 913
Зарегистрирован: 14 янв 2005, 10:30
Откуда: Москва
Контактная информация:

18 июн 2007, 23:13

Для окна диалога вводится обработчик сообщения WM_CTLCOLOREDIT
Fil
Сообщения: 41
Зарегистрирован: 30 авг 2006, 17:03

19 июн 2007, 21:54

Благодарю WinMain.
Но, почему нельзя использовать, например:

COLORREF m_clrText;
...........
HBRUSH CKomEdit::CtlColor(CDC* pDC, UINT nCtlColor)
{
// TODO: Change any attributes of the DC here
m_clrText = RGB( 255, 0, 0 );
pDC->SetTextColor( m_clrText );
}

К тому же, кажется так, проще использовать разные цвета шрифта в одном EditBox. Скажем, вводим предложениее синего цвета, нажимаем Enter и вводим предложение красного цвета.
Аватара пользователя
WinMain
Сообщения: 913
Зарегистрирован: 14 янв 2005, 10:30
Откуда: Москва
Контактная информация:

20 июн 2007, 06:22

Тогда лучше используй RICHEDIT вместо EDITBOX. Там и цвет текста можно менять, и шрифт, и задний фон.
Аватара пользователя
Romeo
Сообщения: 3091
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

20 июн 2007, 13:48

Поддерживаю WinMain'а! Единственный минус RichEdit'а - это то, что придётся самому сделать для него контекстное меню. Но это не сложно, так как у этого контрола предусмотрены методы Copy, Paste и т.д., в которые нужно делигировать клики пунктов контекстного меню.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Fil
Сообщения: 41
Зарегистрирован: 30 авг 2006, 17:03

20 июн 2007, 19:45

С уважением отношусь к мнению столь сильных участников форума (без лести). Но почему-то приложение с RichEdit компилируется без ошибок, но не запускается. Удаляю RichEdit - запускается. Просто вставляю RichEdit, опять не запускается. Пока не разобрался ... что тут может быть?
Аватара пользователя
WinMain
Сообщения: 913
Зарегистрирован: 14 янв 2005, 10:30
Откуда: Москва
Контактная информация:

21 июн 2007, 07:59

При запуске приложения должна подгружаться библиотека RichEd32.dll или RichEd20.dll
Для этого используй функцию LoadLibrary()

Если используешь платформу MFC, то функцию LoadLibrary лучше разместить в методе InitInstance() класса, который унаследован от CWinApp.
Ответить