Cursors and Multithreading

Each thread maintains the state of the wait cursor independently. Thus, calling SetWaitCursor in one thread does not cause the wait cursor to appear when a panel you create in another thread is active.

On the other hand, the choice of mouse cursor that appears when the wait cursor is inactive is global across all threads in a process. Thus, calling SetMouseCursor changes the mouse cursor regardless of which panel is active.