2011-07-13 4 views
0

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

ответ

-1

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

+0

Hi Roel, AnimateWindow выглядит очень перспективно для анимации. Но как я могу изменить размер с высоты 598, скажем, 674? – fz300

+0

Вы правы, и я ошибся; AnimateWindow() предназначен только для отображения/скрытия окон. Вам придется катить свою анимацию. Вы можете сделать это вручную (изменить размер окна шаг за шагом с помощью таймера каждые 100 мс или около того); по-видимому, есть также класс для интерполяции по-разному в обновлении SP1 до VS2010 (http://www.nuonsoft.com/blog/2010/12/16/the-new-mfc-animation-api/), но у меня есть никогда не работал с ним. – Roel

1

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