Question

How can I animate two windows at the same time? I tried:

[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);

But panel2 will not animate until panel1 finished its animation.

I must use the threading .. but i can't even if i used invoke .. also it runs the 2nd animation after the 1st

so how can i do it ?

No correct solution

OTHER TIPS

If both windows were created by the same thread, then the AnimateWindow function will run on that thread. According to the MSDN documentation:

The function will fail in the following situations:

  • If the thread does not own the window. Note that, in this case, AnimateWindow fails but GetLastError returns ERROR_SUCCESS.

There is no way around this other than creating the second window on a separate thread. Additionally, you will have to call the AnimateWindow function from the thread that each window was created on.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top