7 / 7 / 3
Регистрация: 04.06.2015
Сообщений: 189
|
||||||
1 | ||||||
Цвет текста меняется не полностью05.12.2019, 17:41. Показов 591. Ответов 13
Метки нет (Все метки)
Окно создано в MFC
0
|
05.12.2019, 17:41 | |
Ответы с готовыми решениями:
13
Цвет фона и текста в EDIT не меняется Не меняется цвет текста Не меняется цвет текста Не меняется цвет текста |
2376 / 833 / 317
Регистрация: 10.02.2018
Сообщений: 1,961
|
|
05.12.2019, 18:30 | 2 |
Так-то правильно всё подкрашивается, вроде. Возможно проблема в чём-то ещё. Сколько строк выводится (m_nStringLength) и чему равна высота символа (m_CharSize.cy)?
0
|
фрилансер
5497 / 5093 / 1047
Регистрация: 11.10.2019
Сообщений: 13,321
|
|
05.12.2019, 19:35 | 3 |
Sierra26, прицепи полный код класса
0
|
7 / 7 / 3
Регистрация: 04.06.2015
Сообщений: 189
|
||||||
06.12.2019, 10:55 [ТС] | 4 | |||||
Ygg, m_nStringLength = 1, m_CharSize.cy = 16
Добавлено через 30 секунд Алексей1153,
Я так понимаю проверку нужно делать в OnChar и там же делать InvalidateRect
0
|
2376 / 833 / 317
Регистрация: 10.02.2018
Сообщений: 1,961
|
|
06.12.2019, 12:25 | 5 |
Ну, я предположил, что текст выводится дважды в одно место. Сперва правильно, а затем поверх вводится ещё раз часть текста и она затирает два красных символа на чёрные. Но если всего одна строка, то не похоже.
Очень много кода, ничего не понятно Вроде как пытаетесь делать своё поле ввода. Ещё возможен вариант с ошибочным прямоугольником для Invalidate. Возможно вы указываете его не верно и при паинте отрисовка за пределами этого прямоугольника отсекается. Скажем, у вас введено "tx", вы добавляете "t" и вызываете перерисовку с прямоугольником, который начинается с последнего "t" и заканчивается концом строки. В паинте рисуете всю строку, но из-за заданного отсечения картинка до последнего "t" на экране не изменяется, то есть "tx" остаётся черным.
0
|
7 / 7 / 3
Регистрация: 04.06.2015
Сообщений: 189
|
|
06.12.2019, 12:42 [ТС] | 6 |
Ygg,
Я вообще его не указывал. Просто получается не хорошо сначала я где-то (Не в OnPaint) должен найти txt определить Rect перерисовки, а потом тоже самое делать в OnPainte только указывать цвет фона и текст который должен написать. Нельзя ли это сделать в одном месте?
0
|
2376 / 833 / 317
Регистрация: 10.02.2018
Сообщений: 1,961
|
||||||
06.12.2019, 12:53 | 7 | |||||
Если бы вы его не указывали, то было бы как-то так:
1
|
7 / 7 / 3
Регистрация: 04.06.2015
Сообщений: 189
|
|
06.12.2019, 13:36 [ТС] | 8 |
сдесь я перерисовываю 1 символ, но не 3 (txt). Весь текст не хочется перерисовывать(появляется мирцания).
А где определить размер перерисовки? (В OnPaint нельзя!!!)
0
|
2376 / 833 / 317
Регистрация: 10.02.2018
Сообщений: 1,961
|
|
06.12.2019, 14:04 | 9 |
Sierra26, я полагаю, что ответ на ваш изначальный вопрос (причина неправильной отрисовки) найден. Что касается ответа на вопрос, как сделать правильно, то всё несколько сложней. Нужно проанализировать все нюансы задачи и выработать оптимальный алгоритм реализации всех этих нюансов. Никто, кроме вас, не владеет всей полнотой задачи. Думать над реализацией предстоит именно вам. Могу лишь ещё раз упомянуть о фишке с двойной буферизацией вывода. Отключите заливку фона (WM_ERASEBACKGROUND), в онпаинте создайте вспомогательный контекст рисования (CreateCompatibleDC), нарисуйте весь текст на нём и затем перенесите готовую картинку в контекст рисования окна (BitBlt). Это распространённый способ избавления от мерцания.
1
|
7 / 7 / 3
Регистрация: 04.06.2015
Сообщений: 189
|
|
06.12.2019, 14:42 [ТС] | 10 |
0
|
Заблокирован
|
|
06.12.2019, 16:39 | 11 |
1
|
7 / 7 / 3
Регистрация: 04.06.2015
Сообщений: 189
|
|
06.12.2019, 16:50 [ТС] | 12 |
Еще больше запутался. Надо разобраться в этом рисовании. Почему происходит мерцание?
0
|
7 / 7 / 3
Регистрация: 04.06.2015
Сообщений: 189
|
|
06.12.2019, 17:01 [ТС] | 14 |
Makapoxa, В примере тоже мерцает
Добавлено через 6 минут Разобрался. Спасибо всем!!!
1
|
06.12.2019, 17:01 | |
06.12.2019, 17:01 | |
Помогаю со студенческими работами здесь
14
В Safari меняется цвет текста Почему не меняется цвет текста? Не меняется цвет текста в заголовке sPageControl Почему не меняется цвет текста в TButton? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |