Typically you do something like
#define WM_MY_CHANGE_CURSOR (WM_APP+1)
In a header file included both by your main thread source file and by the worker thread one. Then, when appropriate (whenever you need to change the cursor), send the message from the worker thread to the main one, for instance
PostMessage(hWnd, WM_MY_CHANGE_CURSOR, wParam, lParam);
Where hWnd is the handle of the main window and wParam, lParam meanings are freely choosen by you (e.g. wParam maybe the index of the intended new cursor). Finally, you properly handle the message (to do the graphics stuff) in the main thread, for instance using MFC ON_MESSAGE mechanism (see [^]). :)
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke