(I do not have enough reputation to comment)
Maybe I'm missing something, but the existing solutions do not work for me (redefining the implementation of WM_SETCUROSR violates the default cursor behavior when resizing the window, etc., Setting the default cursor to NULL does not seem to work for me, until calling SetCursor I get stuck when loading or resizing cursors.)
Here's a simple alternative solution, error handling for short. In my window initialization code, I set the default cursor to IDC_ARROW :
global_window_class.hCursor = LoadCursor(NULL, IDC_ARROW);
And then in my installed cursor function:
Mason source share