Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
 Аватар для vova2112
148 / 136 / 34
Регистрация: 28.02.2014
Сообщений: 165

Рисование в WM_NCPAINT без мерцания и других дефектов

18.06.2023, 17:04. Показов 1727. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Попытался сделать Textbox который полностью окрашивается в нужный мне цвет, и изменять цвет границы при фокусе, обрабатывая сообщение окна WM_NCPAINT , так-же может изменять цвет полосы прокрутки на тёмный (в win 10 более).

Но столкнулся с Диким Мерцанием онной границы когда указатель мыши попадает и покидает компонент(сиречь при - OnMouseEnter и OnMouseLeave), так-же при сворачивании и последующем возобновлении окна полосы прокрутки наотрез не хотели отрисовываться. В общем вроде получилось решить эту проблему, но меня такое решение не сильно устраивает(пришлось завести переменную типа Boolean и во множестве мест изменять её значение дабы при обработке сообщения окна WM_NCPAINT всё получилось).
Так вот собственно вопрос - может уже давно есть другой, ХОРОШИЙ вариант как это сделать, а я и не знаю о нём.
Собстна объяснять можно долго, вот проек - ColoredTextBox.rar.
Буду рад если кто посоветует чего хорошего для улучшения.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.06.2023, 17:04
Ответы с готовыми решениями:

Рисование движущихся изображений без мерцания
Тема уже старая! С какими средствами работать с 2д графикой, а именно рисовать где то на форма постоянно движущиеся изображения(из файла...

Вероятность случайно выбраной детали без дефектов
Помогите пожалуйста с решение задачи. Детали попадают на предприятие с 3-их цехов: 50% - с 1-го, 30% - с 2-го и 20% с 3 - го. При этом...

Найти вероятность того, что среди 3 отобранных телевизоров все будут без дефектов
Партия с 80 телевизоров содержит 5 со скрытым дефектом. Найти вероятность того, что среди 3 отобранных телевизоров: а) все будут без...

22
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
24.06.2023, 13:44
Студворк — интернет-сервис помощи студентам
Вы решаете задачу не теми инструментами. Окна из WinAPI никогда не будут работать и выглядеть как UWP.
Поэтому лучше сразу перекатывайтесь на написание приложений UWP (или WPF) где все эти бордюры, полоски и каретки прекрасно настраиваются.
0
 Аватар для vova2112
148 / 136 / 34
Регистрация: 28.02.2014
Сообщений: 165
24.06.2023, 18:45  [ТС]
Замабувараев, Спасибо, но вроде-бы уже довольно неплохо получается, Да и пробовал я сделать в WPF тот-же самый Combobox с неактивными элементами, и пришло понимание - Что визуальньую часть можно настроить, а с ПРОГРАММНОЙ частью логики поведения компонента ВСЁ РАВНО Ничего не получается, хоть чё используй.

Добавлено через 20 минут
В идеале - хочу как доп вариант создать Textbox с кнопкой как в упомянутых выше "DotNetBar" и т.п. Я понимаю - что можно ещё сказать о UserControl который содержит в себе экземпляры используемых классов, но это всё какие то "неправильные" костыли, а меня интересует ПОЛНОЦЕННОЕ визуальное изменение контрола.
0
 Аватар для vova2112
148 / 136 / 34
Регистрация: 28.02.2014
Сообщений: 165
26.06.2024, 09:04  [ТС]
Прошёл год и я вроде-бы добился желаемого результата по устранению мерцания. Не уверен что я сделал это правильно с технической стороны.

ColoredTB.rar
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.06.2024, 09:04
Помогаю со студенческими работами здесь

Анимация без мерцания
код uses GraphABC, ABCObjects; var //ob:ObjectABC; intro := new PictureABC(-560,-60,'ava.png'); mode:boolean; ...

Рисовать без мерцания
Добрый день, посоветуйте что почитать плиииз. Пробовал рисовать - получаю мерцание. Не частое, но достаточно заметное. Пробовал...

Анимация без мерцания
Как сделать здесь анимацию, чтобы не было мерцания? :cry: program atom bora; uses crt,graphABC; var ...

Анимация без мерцания
Привет, как реализовать перерисовку без мерцания(арканоид)? Двойная буферизация не помогает.

Перерисовка формы без мерцания
Например, выполняется такой простой код перерисовки ширины формы: while (Width > 400) { Width--; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
23
Ответ Создать тему
Новые блоги и статьи
Хитросплетение родственных связей пантеона греческих богов.
russiannick 14.05.2026
Однооконник, позволяющий узреть и изучить отдельных героев древней Греции. <!DOCTYPE html> <html lang="ru"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible". . .
[golang] Угол между стрелками часов
alhaos 12.05.2026
По заданным значениям часа и минуты необходимо определить значение меньшего угла между стрелками аналогового циферблата часов. import "math" func angleClock(hour int, minutes int) float64 { . . .
Debian 13: Установка Lazarus QT5
ВитГо 09.05.2026
Эта инструкция моя компиляция инструкций volvo https:/ / www. cyberforum. ru/ blogs/ 203668/ 10753. html и его же старой инструкции по установке Lazarus с gtk2. . .
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер. Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром. возможно получится прикрутить интерпретатор питон для кастомизации игровой логики. что есть на текущий момент:. . .
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2. Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru