I have an application running under Direct3D9. The application is using the Direct3D HW cursor API (IDirect3DDevice9::SetCursorProperties
et al.) to control the cursor. Almost everything works fine:
The problem is with the non-client area of my window (the title bar, screen edges). When moving in the non-client area, the cursor corresponding to the function of the area is breifly shown, but once I stop moving, the cursor set in SetCursorProperties is shown again.
What is the correct way to use IDirect3DDevice9::SetCursorProperties
so that I get the default OS cursors on my window non-client area?
After experimenting with various things, a following change in the application has solved the issue for me:
WM_SETCURSOR
is received, remember a result of a condition (lParam&0xffff)==HTCLIENT
in a global variable CursorInClient
CursorInClient
is false, avoid calling IDirect3DDevice9::ShowCursor