Анимация изменения размера окна Win32

Я хочу изменить размер окна с анимацией в моем приложении 32. Я искал везде, но не смог найти API-интерфейсы Win32/MFC для этого. Поведение анимации, которое мне нужно, очень простое. Это просто увеличение высоты окна. Пожалуйста, дайте мне знать, как я могу добиться такого поведения.


person Farooq Zaman    schedule 13.07.2011    source источник


Ответы (2)


Вы можете добиться некоторых пользовательских эффектов анимации с помощью GDI. Начните с получения координат и положения окна с помощью GetWindowRect. Скрыть окно с помощью ShowWindow. Теперь нарисуйте анимацию с помощью DrawRect, FillRect и т. д. по таймеру. Я бы рекомендовал заполнить прямоугольник, используя цвет системного окна. Затем снова покажите/измените размер окна с помощью ShowWindow, когда анимация будет завершена.

person Trevor Balcom    schedule 16.07.2011

Посмотрите на ::AnimateWindow(). Ссылка MSDN: http://msdn.microsoft.com/en-us/library/ms632669%28v=vs.85%29.aspx .

person Roel    schedule 14.07.2011
comment
Привет, Рул! AnimateWindow выглядит очень многообещающе для анимации. Но как я могу изменить размер с высоты 598, скажем, на 674? - person Farooq Zaman; 15.07.2011
comment
Вы правы, и я ошибся; AnimateWindow() предназначен только для отображения/скрытия окон. Вам придется накатывать собственную анимацию. Вы можете сделать это вручную (изменить размер окна шаг за шагом с таймером каждые 100 мс или около того); судя по всему, в обновлении SP1 до VS2010 тоже есть класс для интерполяции разными способами (nuonsoft.com/blog/2010/12/16/the-new-mfc-animation-api), но я никогда с ним не работал. - person Roel; 15.07.2011