|
azatb)4
|
|
WM_PAINT перестает перерисовывать окно15.12.2009, 18:17. Показов 6191. Ответов 8
Метки нет (Все метки)
Добрый вечер!!!
Такая проблема...делаю игру на Visual C++...игра типа арканоида(внизу платформа, сверху квадратики, мячом эти квадраты сбиваются)...в WM_TIMER меняются координаты мяча и вызывается через SendMessage WM_PAINT... собственно все в принципе работает и все бы хорошо, но через некоторое время на экране все зависает, то есть перестает программа перерисовывать экран ...отслеживал, координаты мяча меняются, следовательно просто не перерисовывается окно... Добавлено через 39 минут если нужны куски кода, отпишитесь - я пришлю |
|
| 15.12.2009, 18:17 | |
|
Ответы с готовыми решениями:
8
Как перерисовывать окно в Win32 API? Сколько раз в секунду можно перерисовывать окно? |
|
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
|
||||||
| 15.12.2009, 21:30 | ||||||
|
Советую почитать о действительный и недействительный областях.
![]() но если ты совсем лентяй, могу посоветовать вместо SendMessage() применять функцию
1
|
||||||
|
1 / 1 / 0
Регистрация: 15.12.2009
Сообщений: 11
|
|
| 15.12.2009, 21:34 | |
|
а можно запустить циклом
0
|
|
|
azatb)4
|
|
| 16.12.2009, 07:48 | |
|
но ведь SendMessage() вызывает WM_PAINT и я смотрел - там выполняются функции рисования клеток, мяча и т.д., но на окне все это не оттображается...
|
|
|
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
|
|
| 16.12.2009, 10:10 | |
|
0
|
|
|
1 / 1 / 0
Регистрация: 12.07.2012
Сообщений: 5
|
|
| 12.07.2012, 10:05 | |
|
Так и не понял что надо! Тоже через таймер всё движется, обновляется, сначала всё нормально, потом минут через 5 появляется хрень, а потом и вовсе окно становится полностью белым!
Только столкнулся с WinApi, помогите пожалуйста, не пойму в чём проблема! Вот нормально идёт таймер: Потом случается вот это: Но таймер продолжает работать и циферки меняются! Потом просто перестаёт обновляться, а дальше и вовсе всё окно белым становится! Ну т.е. оно не зависает, а просто белое...(
0
|
|
|
1 / 1 / 0
Регистрация: 12.07.2012
Сообщений: 5
|
||||||
| 12.07.2012, 10:26 | ||||||
|
Вот код)
0
|
||||||
|
Супер-модератор
|
|
| 12.07.2012, 10:40 | |
Сообщение было отмечено volvo как решение
Решение
У тебя ресурсы утекают. Зайди в TaskManager и посмотри на количество GDI Objects твоего приложения. Ибо кисть, созданную через CreateSolidBrush надо удалять, а ты этого не делаешь. Вот тебе и причина: со временем программа перестает себя адекватно вести.
1
|
|
|
1 / 1 / 0
Регистрация: 12.07.2012
Сообщений: 5
|
||||||
| 12.07.2012, 11:39 | ||||||
|
UI, спасибо большое!) Так и думал что где-то утечка, но не знал где... Вот что значит глянул недопример в интернете - без нужного создания и удаления -_-
Отрывок где изменил:
Если не удалять каждый раз - опять происходит утечка...
0
|
||||||
| 12.07.2012, 11:39 | |
|
Помогаю со студенческими работами здесь
9
Не могу отправить окну сообщение WM_PAINT (точнее, не могу перерисовать окно) Перестает обновляться окно Активное окно перестает быть активным Окно премьера (Adobe Premiere Pro CS5) перестаёт быть активным Программа перестает отвечать после сворачивания или перехода на другое окно Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2).
Унарный минус обозначается как !
*/
#include <iostream>
#include <stack>
#include <cctype>. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|