0

如何同时为两个窗口设置动画?我试过了:

[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 不会动画。

我必须使用线程..但即使我使用了调用我也不能..它也在第一个动画之后运行第二个动画

那我该怎么做呢?

4

1 回答 1

1

如果两个窗口都是由同一个线程创建的,那么该AnimateWindow函数将在该线程上运行。根据MSDN 文档

该函数在以下情况下会失败:

  • 如果线程不拥有窗口。请注意,在这种情况下,AnimateWindow失败但GetLastError返回ERROR_SUCCESS

除了在单独的线程上创建第二个窗口之外,没有其他办法。此外,您必须AnimateWindow从创建每个窗口的线程中调用该函数。

于 2012-06-21T21:39:50.787 回答