0 / 0 / 0
Регистрация: 03.11.2014
Сообщений: 47
|
|
1 | |
Моргание экрана при перерисовке07.12.2014, 00:38. Показов 8076. Ответов 24
Метки нет (Все метки)
Ребята, может кто знает, как убрать моргание экрана при перерисовке, пользуюсь функцией InvalidateRect(), моргает не всегда, но бывает. Заранее спасибо
0
|
07.12.2014, 00:38 | |
Ответы с готовыми решениями:
24
Мерцание при перерисовке окна Не сохраняет цвет при перерисовке через bitmap Моргание экрана при логине Анимация в dos - реализовать очистку экрана при перерисовке |
0 / 0 / 0
Регистрация: 03.11.2014
Сообщений: 47
|
|
07.12.2014, 12:30 [ТС] | 3 |
ValeryS, а не подскажете, как она реализовывается?
0
|
1 / 1 / 0
Регистрация: 10.04.2011
Сообщений: 30
|
||||||
07.12.2014, 17:35 | 5 | |||||
Добавлено через 12 секунд kalter14i77,
0
|
0 / 0 / 0
Регистрация: 03.11.2014
Сообщений: 47
|
||||||
07.12.2014, 17:47 [ТС] | 6 | |||||
ValeryS, Это нельзя назвать двойной буферизацией?
0
|
Модератор
8946 / 6712 / 921
Регистрация: 14.02.2011
Сообщений: 23,686
|
||||||
07.12.2014, 18:01 | 7 | |||||
с большой натяжкой
принцип то правильный, но исполнение создаешь контекст в этом контексте нужно еще создать битмап, чтобы было где рисовать потом рисуешь в этом контексте
вот здесь обсуждалось https://www.cyberforum.ru/cpp-... 00041.html правда там MFC, но принцип тот же
0
|
0 / 0 / 0
Регистрация: 03.11.2014
Сообщений: 47
|
|
07.12.2014, 18:05 [ТС] | 8 |
Катеринк@, неее, это не поможет, у меня в конце WM_PAINT стоит ValidateRect(), он и так обновляет экран
0
|
Модератор
8946 / 6712 / 921
Регистрация: 14.02.2011
Сообщений: 23,686
|
|
07.12.2014, 18:11 | 9 |
0
|
0 / 0 / 0
Регистрация: 03.11.2014
Сообщений: 47
|
||||||
07.12.2014, 18:49 [ТС] | 10 | |||||
ValeryS, спасибо большое, сейчас буду пробовать
Добавлено через 30 минут ValeryS, Вот что попробовал написать, пока с одним битмапом, но его не нарисовало, где я ошибся?
0
|
Модератор
8946 / 6712 / 921
Регистрация: 14.02.2011
Сообщений: 23,686
|
|
07.12.2014, 18:55 | 11 |
это зачем??
попробуй сначала в hmdc нарисовать что то, допустим прямоугольник в двойной буферизации есть тонкости, которые пока сам не пощупаешь, не поймешь у меня сейчас нет компилятора, чтобы накидать тебе рабочий пример Добавлено через 53 секунды вот это еще нужно выбрать в контексте рисования, SelectObject
0
|
0 / 0 / 0
Регистрация: 03.11.2014
Сообщений: 47
|
||||||
07.12.2014, 20:22 [ТС] | 12 | |||||
ValeryS, в самом hmdc и картинки неплохо рисуются) а вот с hmdc2 перебросить в hmdc, а потом с hmdc перебросить в hdc, вот это проблема. Возможно я слабо понимаю как это происходит, но насколько я понял это через bitblt() делается, но всё равно не получается вывести
Добавлено через 53 минуты Вот, так вывело картинку, это правильная реализация?
0
|
Модератор
8946 / 6712 / 921
Регистрация: 14.02.2011
Сообщений: 23,686
|
||||||
07.12.2014, 20:38 | 13 | |||||
почти что
зачем каждый раз вызывать? вызови один раз при создании окна утечка ресурсов всегда нужно возвращать прежнее значение
0
|
0 / 0 / 0
Регистрация: 03.11.2014
Сообщений: 47
|
||||||
07.12.2014, 21:09 [ТС] | 14 | |||||
ValeryS, попробовал в том же контексте(hmdc) ещё текст повыводить, вывело только то, что в предел размеров битмапы вошло
0
|
Модератор
8946 / 6712 / 921
Регистрация: 14.02.2011
Сообщений: 23,686
|
|
07.12.2014, 21:23 | 15 |
нук так и должно быть
размеры то картинки указал в таких случаях делается так создается два контекста в один выбираешь битмап, который нужно отобразить а второй по размерам с экран из первого копируешь картинку во второй, потом там рисуешь что надо и копируешь второй на экран
0
|
0 / 0 / 0
Регистрация: 03.11.2014
Сообщений: 47
|
||||||
07.12.2014, 22:12 [ТС] | 16 | |||||
ValeryS, Вот что я написал, всё вывело, протестировал, но мерцания остались( даже ещё больше выраженными стали
0
|
Модератор
8946 / 6712 / 921
Регистрация: 14.02.2011
Сообщений: 23,686
|
|
07.12.2014, 22:22 | 17 |
эти две строчки исключают друг друга
я тебе показывал как правильно делать
хотелось бы полностью ветку WM_PAINT вот это выбросил?
0
|
0 / 0 / 0
Регистрация: 03.11.2014
Сообщений: 47
|
||||||
07.12.2014, 22:40 [ТС] | 18 | |||||
ValeryS, Вот весь WM_PAINTнедоработанный) но вывел я уже всё
0
|
Модератор
8946 / 6712 / 921
Регистрация: 14.02.2011
Сообщений: 23,686
|
|
07.12.2014, 22:56 | 19 |
зачем сначала удалять потом создавать?
по моему у тебя банальная утечка ресурсов открой диспетчер задач перейди на вкладку "Процессы" в меню "Вид" ->"выбрать столбцы" поставь галку "Объекты GDI" и понаблюдай за ними растут или нет?
0
|
0 / 0 / 0
Регистрация: 03.11.2014
Сообщений: 47
|
|
07.12.2014, 23:02 [ТС] | 20 |
ValeryS, насколько я понял, они растут каждый раз, когда идёт перересовка(увеличились с 40 до 540, потом закрыл прогу)
0
|
07.12.2014, 23:02 | |
07.12.2014, 23:02 | |
Помогаю со студенческими работами здесь
20
Моргание экрана (graphics.h) RX 5700XT Моргание экрана Кривое изображение и моргание экрана Моргание при показе формы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |