如何同时为两个窗口设置动画?我试过了:
[DllImport("user32.dll", CharSet = CharSet.Auto)]
static extern bool AnimateWindow(IntPtr hwnd, int time, int flags);
...
AnimateWindow(panel1.Handle, speed, AW_SLIDE | AW_HOR_Top);
AnimateWindow(panel2.Handle, speed, AW_SLIDE | AW_HOR_Top);
但是在panel1完成动画之前,panel2不会动画。
我必须使用线程..但即使我使用了调用我也不能..它也会在第一个之后运行第二个动画
所以我该怎么做?
答案 0 :(得分:1)
如果两个窗口都是由同一个线程创建的,则AnimateWindow
函数将在该线程上运行。根据{{3}}:
在以下情况下,该功能将失败:
- 如果线程没有窗口。请注意,在这种情况下,
AnimateWindow
失败,但the MSDN documentation返回ERROR_SUCCESS
。
除了在单独的线程上创建第二个窗口之外,没有办法解决这个问题。此外,您必须从创建每个窗口的线程调用AnimateWindow
函数。