32 / 30 / 4
Регистрация: 01.02.2014
Сообщений: 878

Скрытая отрисовка окна

19.02.2015, 17:52. Показов 2888. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В общем такая проблема, есть диалоговое окно, когда оно показывается
C++ (Qt)
1
ShowWindow(диалогвое окно,SW_SHOWNORMAL);
иногда происходит мерцание контролов, само окно с флагами |WS_CLIPCHILDREN | WS_CLIPSIBLINGS,
поэтому прорисовка происходит следующим образом,
1) рисуется фон контролов(Erasebknd),
2) фон самого окна (Erasebknd),
3) WM_PAINT контролов
4) WM_PAINT окна

следовательно это вызывает мерцание.

Как можно решить проблему с мерцанием? МБ можно как-то заставить окно показыватся только после полной отрисовки, или сделать невидимым - отрисовать, скопировать растр и нарисовать его?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.02.2015, 17:52
Ответы с готовыми решениями:

Отрисовка окна(C#)
Здравствуйте! столкнулся с такой проблемой, использую код private void Form1_Paint(object sender, PaintEventArgs e) { ...

Отрисовка окна
Привет всем. Не правильная отрисовка окна, координаты мыши остаются на окне. Как исправить? Работа сделана в VC2008 на C++. ...

MFC отрисовка окна
Привет. В MFC для MDI существует метод OnDraw для отрисовки окна. Но этот метод вызывается только при определенных событиях (свертывание,...

23
32 / 30 / 4
Регистрация: 01.02.2014
Сообщений: 878
20.02.2015, 22:38  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от castaway Посмотреть сообщение
Извини, но помочь не смогу, с GDI+ не знаком.
Просто совет: в процедуре обработки сообщений используй switch-case.
GDI+ только загружает картинку и рисует в памяти 1 раз, больше нигде не используется, во всём остальном BitBlt
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
20.02.2015, 22:54
Цитата Сообщение от mh-coder Посмотреть сообщение
GDI+ только загружает картинку и рисует в памяти 1 раз, больше нигде не используется, во всём остальном BitBlt
~90% оконной процедуры занимает GDI+. А вся суть и именно в ней.
0
32 / 30 / 4
Регистрация: 01.02.2014
Сообщений: 878
20.02.2015, 22:57  [ТС]
Цитата Сообщение от castaway Посмотреть сообщение
~90% оконной процедуры занимает GDI+. А вся суть и именно в ней.
оно 1 раз загружает картинку и копирует её в память, во всех остальных вызовах вм_паинт, картинка простоо копируется из памяти при помощи BitBlt, та кчто gdi+ тут явно не причём
0
120 / 142 / 46
Регистрация: 31.10.2014
Сообщений: 721
Записей в блоге: 1
21.02.2015, 08:37
Откомпелировал программу никакого мерцания не увидел.
Зато есть большая проблема, программа не дает себя корректно закрыть, приходится грохать процесс.

Добавлено через 1 минуту
Цитата Сообщение от castaway Посмотреть сообщение
Просто совет: в процедуре обработки сообщений используй switch-case.
Он сказал ему else if нравится, потому что ему и всем остальным лучше читать код.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.02.2015, 08:37

Отрисовка диалогового окна на главном.
Непонятная проблема возникла. Создал диалоговое окно, вызываю его, а оно отрисовывается на главном окне. Кто-нибудь с таким встречался? ...

Отрисовка окна и его изменение
Делаю приложения для себя для изучения английских слов, программа выбирает из словаря слово и выводит его с 3 вариантами ответа. Суть в...

Почему отрисовка начинается не с начала окна?
Ребята объясните пожалуйста. Начал разбираться в openGL. Возник вопрос хочу нарисовать обычную линию. glBegin(GL_LINES); ...

D3D11 - Отрисовка изображения в заданной части окна
Добрый день всем! Надеюсь на помощь форумчан в следующем вопросе: Итак, есть тектура, т.е. указатель на интерфейс ID3D11Texture2D...

скрытая сьемка
Мне нужно на ноуте с виндовз 8.1 поставить сьемку через вебкамеру и потушитб монитлр чтоб присудствующие у меня в комнате не знали что идет...


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

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

Новые блоги и статьи
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства. Жизнь действительно предъявляет каждому. . .
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
Лето уходит
kumehtar 17.08.2026
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины". За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html Задача: . . .
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru