Диссидент
Эксперт C
27329 / 17050 / 3767
Регистрация: 24.12.2010
Сообщений: 38,410
1

Перерисовка формы целиком

15.10.2013, 19:05. Показов 2206. Ответов 7
Метки нет (Все метки)

Как сделать так, чтобы по onPaint перерисовывалась вся форма, а не только те ее части, которые были перекрыты другими окнами?
Update() не помог
Invalidate() естественно приводит к зацикливанию.
Свойств, отвечающих за такое поведение не нашел
Builder-6
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.10.2013, 19:05
Ответы с готовыми решениями:

Частая перерисовка формы приводит к тормозам
При частой перерисовке формы (примерно ра в 10 мс) сильно загружается прцессор, и компьютер...

Перерисовка ProgressBar при зависании формы
Всем доброго времени суток! На форме есть вкладки по особым категориям данных (таковых пока что...

Постоянная перерисовка формы при изменении ее размеров
Есть форма. (на ней некий график, не суть) Иногда хочется изменить ее размеры, потащив за рамку,...

перерисовка формы
Пытаюсь сделать перерисовку окна по таймеру: ... MoveToEx(hdc,r1-5,r1-5,NULL); ... case...

7
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
15.10.2013, 20:37 2
Цитата Сообщение от Байт Посмотреть сообщение
Invalidate() естественно приводит к зацикливанию.
А если создать флажок-счетчик кол-ва вложенных вызовов и не давать вызывать более 2 раз?
0
Диссидент
Эксперт C
27329 / 17050 / 3767
Регистрация: 24.12.2010
Сообщений: 38,410
15.10.2013, 22:12  [ТС] 3
Цитата Сообщение от gumi250 Посмотреть сообщение
А если создать флажок-счетчик кол-ва вложенных вызовов и не давать вызывать более 2 раз?
Такая мысля в голову приходила. Но неужто нет нормального, регулярного способа? Возможно, я хочу странного. Могу от затеи и отказаться. Пойду другим путем. Но подожду до утра. Потом все возненавижу. Так как не знаю кого ненавидеть конкретно. Весь Мир, Всю IT, Всю ООП, Виндовоза, Бюльдера, себя...
0
Практикантроп
4780 / 2680 / 517
Регистрация: 23.09.2011
Сообщений: 5,734
15.10.2013, 22:24 4
Цитата Сообщение от Байт Посмотреть сообщение
подожду до утра. Потом все возненавижу
Тогда побывайте еще здесь . После полуночи - в самый раз... .
0
Диссидент
Эксперт C
27329 / 17050 / 3767
Регистрация: 24.12.2010
Сообщений: 38,410
15.10.2013, 23:56  [ТС] 5
Цитата Сообщение от nick42 Посмотреть сообщение
После полуночи - в самый раз... .
Те. вы считаете, (а я вас знаю как знатока), что затея моя глупая? Вполне возможно. В чем мне показалась фишка. Вот нужно построить 30 графиков. Но не всех, а только выбранных. А я уже всех их давно посчитал! (так получилось, что их вместе считать все равно). Работы жалко. И вот юзер возвращается на панель управления и выбирает еще какие-то (ему важно увидеть все графики вместе). А перерисовываются только те куски, что были закрыты другими окнами. Ну неужто нет чего-то, свойства, метода, чтоб сказать - рисуй все заново! Если нет - уйду в запой. Приглашаю всех, кто в теме.
0
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
16.10.2013, 00:08 6
Вы строите графики в TChart (хотя врят ли там есть такие проблемы) или на канве?
Цитата Сообщение от Байт Посмотреть сообщение
юзер возвращается на панель управления и выбирает еще какие-то ...(е
Ну вот как он выбрал чего то так и перерисовывай все графики не в событии onPaint, а в событии выбора.

Честно говоря вообще не понимаю зачем может понадобится перерисовать в onPaint, то что не заслонялось.
0
Практикантроп
4780 / 2680 / 517
Регистрация: 23.09.2011
Сообщений: 5,734
16.10.2013, 00:09 7
Цитата Сообщение от Байт Посмотреть сообщение
я вас знаю как знатока
- зря. Я достаточно тупой, и мыслить привык конкретно. Вы не пояснили, каким образом что рисуется и почему перерисовывается только там, где были другие окна..., если малевалось на канве, то, вероятно, какой-то функцией и по каким-то данным; тогда это все можно воспроизвести. Короче говоря, когда много вариантов, я прекращаю фантазировать, а то череп перегреется... .
0
Диссидент
Эксперт C
27329 / 17050 / 3767
Регистрация: 24.12.2010
Сообщений: 38,410
16.10.2013, 00:35  [ТС] 8
Цитата Сообщение от gumi250 Посмотреть сообщение
или на канве
Угу.
Цитата Сообщение от gumi250 Посмотреть сообщение
Ну вот как он выбрал чего то так и перерисовывай все графики не в событии onPaint, а в событии выбора.
Была такая идейка. Но муторно показалось.
Цитата Сообщение от gumi250 Посмотреть сообщение
не понимаю зачем может понадобится перерисовать в onPaint, то что не заслонялось.
А и правда. Вот такая у меня заморочка вышла.
Цитата Сообщение от nick42 Посмотреть сообщение
а то череп перегреется.
Череп надо беречь. Он у нас на каждого - один.
Ладно, понял. ВИНАПИ сам думает, что нам в самом деле нужно. И конечно, он лучше знает. Остается только в пол ему поклонится. Обертки наши конечно ему по фигу. Ладно, будем попроще. Заказчик об этой конфетке еще не знает, ну и обойдется.
Но странно это. Хочется сделать в общем-то простые и естественные вещи - ан низзя...
Вывод: из onPaint нельзя изменить область перерисовки. Этим занимаются роботы, которые, конечно, умнее нас.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.10.2013, 00:35
Помогаю со студенческими работами здесь

Перерисовка формы
Рисую на канве геометрические фигуры, затем хочу перемещать их по отдельности для чего использую...

Перерисовка формы
Рисую на форме с помощью canvas.xxx, закрашиваю с помощью canvas.FloodFill(x,y,color,fsBorder)....

VB.NET Перерисовка формы
добрый день. у меня такая проблема. для изменения некоторых своих свойств я вызываю немодальное...

перерисовка формы вручную
Здравствуйте. Недавно начал изучать C# Хотел бы написать программку движения точки Так это...

Принудительная перерисовка формы
Форма сама перерисовывается если была перекрыта чем нибудь. А можно ли принудительно заставить...

Перерисовка формы и BorderLayout
Доброго времени суток. У меня тут возникло несколько вопросов. В обработчике на кнопке...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru