2013-06-02 5 views
0

WM_INPUT 메시지를 WndProc()으로 읽은 OpenGL/DX 응용 프로그램을 작성하여 사용자 정의 마우스 커서를 이동합니다. 시스템 마우스 커서가 응용 프로그램 창 위 또는 안에있는 경우 ShowCursor(false)을 통해 숨겨집니다.사용자 정의 커서를 사용하여 C++ 응용 프로그램에서 시스템 마우스 커서 이동을 방지하는 방법은 무엇입니까?

문제는 마우스를 움직일 때 시스템 마우스 커서가 여전히 움직이는 것입니다. 따라서 두 커서 (응용 프로그램의 일반 시스템 커서와 사용자 정의 커서)가 동시에 움직입니다. 마우스 클릭에도 동일하게 적용됩니다.

내 질문은 : 어떻게 응용 프로그램이 실행 중일 때 시스템 마우스 커서가 이동 (및 클릭)하지 못하게하여 사용자 정의 마우스 커서 만 작동하는 것입니까?

+0

또는 숨겨진 시스템 커서 위치에 사용자 정의 커서 만 표시 할 수 있습니다. – BlueWanderer

+0

@BlueWanderer : 내 문제는 해결되지 않을 것이라고 생각합니다. 문제는 응용 프로그램이 실행되는 동안 시스템 마우스 커서가 완전히 작동한다는 것입니다. 따라서 사용자가 응용 프로그램에서 마우스로 클릭하면 시스템 마우스 커서로도 클릭이 수행됩니다. 그 시스템 커서가 예를 들어 다른 윈도우의 버튼 위에 있으면 그 버튼도 클릭됩니다. 이것은 분명히 내가 원하는 것이 아닙니다. 그 문제에 접근하는 방법에 대한 "기본"방법이 있어야합니다 ... – Matthias

답변

1

커서가 표시 전용입니다. 기본 커서를 숨기고 직접 커서를 그려도 이동 및 클릭에는 영향을 미치지 않습니다. 그냥 사용자 정의 커서를 표시 할 경우 마우스가 창 내부 때

  1. , 당신은 단지 시스템 커서를 숨길해야합니다

    나는 당신이 무엇을하고 있는지 두 가지 가능성이있는 것 같아요. 따라서 사용자는 커서가 사용자의 창 밖에있을 때 수행중인 작업을 알고 있습니다. 또는 ClipMouse로 창 내부의 마우스를 제한 할 수 있습니다.

  2. DirectInput과 같은 것으로 마우스를 완전히 다룰 경우, 다시 ClipMouse를 사용해야합니다.

+0

위대한, 감사합니다, 'ClipCursor()'(이것이 당신이 의미 한 것 같아요) 내게 속임수를 했어! – Matthias