Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
32 / 30 / 4
Регистрация: 01.02.2014
Сообщений: 878

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

19.02.2015, 17:52. Показов 2790. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru