Я хочу изменить размер окна с анимацией в моем приложении 32. Я искал везде, но не смог найти API-интерфейсы Win32/MFC для этого. Поведение анимации, которое мне нужно, очень простое. Это просто увеличение высоты окна. Пожалуйста, дайте мне знать, как я могу добиться такого поведения.
Анимация изменения размера окна Win32
Ответы (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
Привет, Рул! AnimateWindow выглядит очень многообещающе для анимации. Но как я могу изменить размер с высоты 598, скажем, на 674?
- person Farooq Zaman; 15.07.2011
Вы правы, и я ошибся; AnimateWindow() предназначен только для отображения/скрытия окон. Вам придется накатывать собственную анимацию. Вы можете сделать это вручную (изменить размер окна шаг за шагом с таймером каждые 100 мс или около того); судя по всему, в обновлении SP1 до VS2010 тоже есть класс для интерполяции разными способами (nuonsoft.com/blog/2010/12/16/the-new-mfc-animation-api), но я никогда с ним не работал.
- person Roel; 15.07.2011