web-dev-qa-db-ja.com

現在のカーソル位置を取得

ウィンドウの現在のマウス位置を取得し、それを2つの変数xおよびy(画面全体ではなく、ウィンドウに相対的な座標)に割り当てたいと思います。

Win32とC++を使用しています。

簡単なボーナス質問:カーソルを非表示にする/非表示を解除するにはどうすればよいですか?

50
I Phantasm I

GetCursorPos を呼び出して、カーソル位置を取得します。

POINT p;
if (GetCursorPos(&p))
{
    //cursor position now in p.x and p.y
}

これは、画面座標に対するカーソル位置を返します。 ScreenToClient を呼び出して、ウィンドウ座標にマッピングします。

if (ScreenToClient(hwnd, &p))
{
    //p.x and p.y are now relative to hwnd's client area
}

ShowCursor でカーソルを非表示および表示します。

ShowCursor(FALSE);//hides the cursor
ShowCursor(TRUE);//shows it again

カーソルを非表示にするすべての呼び出しが、カーソルを再度表示する呼び出しと一致するようにする必要があります。

108
David Heffernan

GetCursorPos() は、POINT構造体へのポインターを渡すとx/yを返します。

カーソルを非表示にするには、 ShowCursor() を使用します。

13
Mike Kwan