2010-12-20 2 views
1

Direct3D9에서 실행되는 응용 프로그램이 있습니다. 응용 프로그램은 커서를 제어하기 위해 Direct3D HW 커서 API (IDirect3DDevice9::SetCursorProperties 등)를 사용합니다. 거의 모든 작동합니다 :IDirect3DDevice9 :: SetCursorProperties를 사용할 때 비 클라이언트 영역에서 커서 깜박임

  • 응용 프로그램 창 내부 SetCursorProperties에 의해 지정된 커서가 표시 될 때
  • 바탕 화면이나 다른 창에서 필요에 따라 응용 프로그램 창 밖에, 통상 OS 커서가 표시됩니다

내 클라이언트의 비 클라이언트 영역 (제목 표시 줄, 화면 가장자리)에 문제가 있습니다. 비 클라이언트 영역에서 이동할 때 영역의 기능에 해당하는 커서가 간결하게 표시되지만 일단 이동을 중지하면 SetCursorProperties에 설정된 커서가 다시 표시됩니다.

IDirect3DDevice9::SetCursorProperties을 사용하여 내 클라이언트가 아닌 클라이언트 영역에 기본 OS 커서를 얻는 올바른 방법은 무엇입니까?

답변

1

여러 가지 실험 후, 응용 프로그램에서 다음과 같이 변경 나를 위해 문제를 해결했다 :

WM_SETCURSOR가 수신 창 절차에서
  • 는, 세계에서 조건 (lParam&0xffff)==HTCLIENT의 결과를 기억 글로벌 변수 CursorInClient이 false이면 당신거야 전화 showc 경우 테스트 메시지를 명중 변수 CursorInClient
  • IDirect3DDevice9::ShowCursor
+0

당신은 NC에 대해 듣고 더 잘 할 것 호출하지 않도록 저 – Necrolis

관련 문제