Получить текущую позицию курсора - PullRequest
50 голосов
/ 21 июня 2011

Я хочу получить текущую позицию мыши в окне и назначить ее 2 переменным x и y (координаты относительно окна, а не экрана в целом).

Я использую Win32 и C ++.

И быстрый бонусный вопрос: как бы вы спрятали / скрыли курсор?

Ответы [ 2 ]

107 голосов
/ 21 июня 2011

Вы получаете позицию курсора, вызывая 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

Вы должны убедиться, что каждому вызову, чтобы скрыть курсор, соответствует тот, который показывает его снова.

13 голосов
/ 21 июня 2011

GetCursorPos () вернет вам x / y, если вы передадите указатель на структуру POINT.

Скрыть курсор можно с помощью ShowCursor ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...