Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
 Аватар для chum
111 / 51 / 5
Регистрация: 19.01.2010
Сообщений: 139

Как приостановить анимацию при потере фокуса

09.08.2011, 03:39. Показов 2714. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, форумчане!
Помогите, пожалуйста, разобраться. Вот, например, у меня на главной форме приложения по нажатию кнопки начинается анимация в PaintBox-е. Если в это время передвигать мышкой форму за неклиентскую область, то анимация приостонавливается,а возобновляется после того, как левую клавишу мышки отпустить.
А как сделать, чтобы если во время анимации переключиться на любое другое приложение, то также бы происходила приостоновка. А после возвращения фокуса моему приложению, чтоб анимация продолжилась с места остановки?
У нет в этом опыта, поэтому прошу помощи.
Если нужно отлавливать WM_SETFOCUS / WM_KILLFOCUS, то как это правильно сделать?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.08.2011, 03:39
Ответы с готовыми решениями:

Как оставить строку ListView выделенной при потере фокуса
Здравствуйте! HideSelection = false ... void ListViewEx_DrawSubItem(object sender, DrawListViewSubItemEventArgs e) { ...

Как сделать автоматическое закрытие окна при потере фокуса?
Значит имеем галерею с превьюшками фотографий. Нажимая на фотографию открывается новое окно, без навигации и скроллеров с увеличенной до...

Вычисления при потере фокуса
Как запрограммировать вычисление на потерю фокуса? Когда я нажимаю на закрытие или другие кнопки , то работает , а вот если просто по...

6
 Аватар для bretba
63 / 58 / 13
Регистрация: 24.07.2011
Сообщений: 343
09.08.2011, 13:23
Введи какую нибудь переменную логического типа.Если анимация работает,то она true,иначе false

C++
1
2
3
4
5
6
7
8
9
...
case WM_SETFOCUS:
p=true;
break;
...
case WM_KILLFOCUS:
p=false;
break;
...
1
59 / 59 / 2
Регистрация: 22.01.2011
Сообщений: 187
09.08.2011, 19:50
chum, так же смотрим в сторону WM_ACTIVATE
1
 Аватар для chum
111 / 51 / 5
Регистрация: 19.01.2010
Сообщений: 139
11.08.2011, 00:15  [ТС]
Спасибо большое за советы!!!
Только у меня еще просьба: можно какой-нибудь мини-пример, как остановить главный процесс (во время анимации), а потом при возвращении управления обратно к моему приложению, чтоб анимация продолжилась именно с той точки, на которой остановилась при потере фокуса приложением.
То есть так же, как эта анимация приостанавливается при перетаскивании формы или пока открыта модальная форма.
0
59 / 59 / 2
Регистрация: 22.01.2011
Сообщений: 187
11.08.2011, 01:02
chum, как анимацию делаем? код можно посмотреть?
0
 Аватар для chum
111 / 51 / 5
Регистрация: 19.01.2010
Сообщений: 139
11.08.2011, 02:02  [ТС]
Анимация спайтов с помощью BitBlt.
То есть имеется отдельная процедура DrawAnimBitmap, в которой несколько раз используется эта функция, сначала всё копируется в буфер, а потом на контекст моего paintbox-а.
А сама анимация происходит при нажатии кнопки.
В двух бесконечных циклах (ход по горизонтали и по вертикали)
while True do
проверяется, если координаты - удовлетворяющие условию, то
выполняется DrawAnimBitmap.

Добавлено через 23 минуты
Вся моя затея с приостановкой анимации из-за того, что при переключении на любое другое приложение процесс не останавливается, а когда опять возвращаешь фокус моей форме на один ход цикла при аниации просвечивается фон открытого до этого приложения.
А вот если просто тащишь мышкой форму за неклиентскую область, анимация "замирает" и, когда мышку отпускаешь, то она вполне себе правильно продолжается с того места, на котором остановилась при захвате мышкой формы. Вот и я хочу такого же эффекта, только не при перетаскивании, а при потере/получении фокуса приложением.
Извините за сумбурное изъяснение, если что......

Добавлено через 2 минуты
Тьфу, блин, опечатка вышла((((((((((
Анимация не "спайтов"))), а "спРайтов"....
0
 Аватар для xAtom
935 / 760 / 299
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
11.08.2011, 10:52
Вот выложил исходник анимации при помощи GDI при потере фокуса анимация приостанавливается вывод осуществляется в дополнительный буфер(двойная буферизация), я вот накидал этот пример не только для анимации можешь к 2D-играм его применить и всё при помощи GDI, привёл примеры вывода с различными блитингами BitBlt, StretchBlt, TransparentBlt, AlphaBlend...

Не плохо для GDI в DirectDraw7 Microsoft таки не реализовали AlphaBlend на подсистемном уровне
Вложения
Тип файла: rar Animate.rar (145.0 Кб, 36 просмотров)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.08.2011, 10:52
Помогаю со студенческими работами здесь

Запись значения при потере фокуса
Здравствуйте в js я еще плаваю, поэтому прошу немного помощи: Суть проблемы в следующем есть к примеру: <input type=text...

Переход на страницу при потере фокуса
Привет всем. Подскажите пожалуйста следующее. Вот код: <form class="forma" method="post" action="xxx"> ...

Событие при потере фокуса поля
Есть ли такое событие при потере фокуса?? в visual studio s# ultimate 2012 не нашёл такого!

Действие при потере фокуса окна
Всем привет. Пишу программу-тесты на С++. Для того, чтобы отвечали на вопросы честно, появилась идея сделать следующее: сделать форму...

Закрыть форму при потере фокуса
Простое применение Private Sub Form_LostFocus() DoCmd.Close acForm, Me.Name End Sub выдаёт ошибку. Использование Deactivate тоже...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru