Не корректные координаты мыши - C (СИ)
Формулировка задачи:
Здравствуйте!
Помогите, пожалуйста, разобраться.
Написал программу, одна из задачь которой - это получение координаты положения мыши. Проблема в том, что я не могу корркетно получить их в виде int или double.
Код:
Например: в этом случае lParam=1570132, x=-2732, y=23. По-моему это не нормально, так как разрешение экрана у меня 1366x768.
Что я не так делаю?
int x = (short int)LOWORD(lParam); //определяем Х координату int y = (short int)HIWORD(lParam); //определяем Y координату
Решение задачи: «Не корректные координаты мыши»
textual
Листинг программы
LONG x = ((PMOUSEHOOKSTRUCT)lParam)->pt.x; LONG y = ((PMOUSEHOOKSTRUCT)lParam)->pt.y;
Объяснение кода листинга программы
LONG x
- переменная типаLONG
, которая содержит значение координаты X мыши.LONG y
- переменная типаLONG
, которая содержит значение координаты Y мыши.((PMOUSEHOOKSTRUCT)lParam)->pt.x
- вычисляется значение переменнойx
. ЗдесьlParam
является параметром функции, который содержит структуруPMOUSEHOOKSTRUCT
. Метод->
используется для доступа к полям этой структуры. В данном случае мы получаем значение поляpt.x
из этой структуры и присваиваем его переменнойx
.((PMOUSEHOOKSTRUCT)lParam)->pt.y
- вычисляется значение переменнойy
. Здесь мы получаем значение поляpt.y
из структурыPMOUSEHOOKSTRUCT
, связанной с параметромlParam
, и присваиваем его переменнойy
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д