Не корректные координаты мыши - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! Помогите, пожалуйста, разобраться. Написал программу, одна из задачь которой - это получение координаты положения мыши. Проблема в том, что я не могу корркетно получить их в виде int или double. Код:
int x = (short int)LOWORD(lParam);    //определяем Х координату
int y = (short int)HIWORD(lParam);            //определяем Y координату
Например: в этом случае lParam=1570132, x=-2732, y=23. По-моему это не нормально, так как разрешение экрана у меня 1366x768. Что я не так делаю?

Решение задачи: «Не корректные координаты мыши»

textual
Листинг программы
LONG x = ((PMOUSEHOOKSTRUCT)lParam)->pt.x;
LONG y = ((PMOUSEHOOKSTRUCT)lParam)->pt.y;

Объяснение кода листинга программы

  1. LONG x - переменная типа LONG, которая содержит значение координаты X мыши.
  2. LONG y - переменная типа LONG, которая содержит значение координаты Y мыши.
  3. ((PMOUSEHOOKSTRUCT)lParam)->pt.x - вычисляется значение переменной x. Здесь lParam является параметром функции, который содержит структуру PMOUSEHOOKSTRUCT. Метод -> используется для доступа к полям этой структуры. В данном случае мы получаем значение поля pt.x из этой структуры и присваиваем его переменной x.
  4. ((PMOUSEHOOKSTRUCT)lParam)->pt.y - вычисляется значение переменной y. Здесь мы получаем значение поля pt.y из структуры PMOUSEHOOKSTRUCT, связанной с параметром lParam, и присваиваем его переменной y.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.714 из 5
Похожие ответы