Подтвердить что ты не робот

Получить текущую позицию курсора

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

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

И быстрый вопрос о бонусе: как бы вы могли скрывать курсор/показывать его?

4b9b3361

Ответ 1

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

Вы скрываете и показываете курсор с ShowCursor.

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

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

Ответ 2

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

Скрытие курсора можно выполнить с помощью ShowCursor().