Определить координаты курсора и выводить на консоль - C (СИ)

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

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

Нашел, что нужно использовать BOOL GetCursorPos(LPPOINT lpPoint); тут структура typedef struct tagPOINT { LONG x; LONG y; } POINT, *PPOINT; Как всё это правильно оформить, чтоб на консоль выводило printf("x=%d ,y=%d \r", координатаикс, координатаигрек); Чистый си. Не получается со структурой разобраться.

Решение задачи: «Определить координаты курсора и выводить на консоль»

textual
Листинг программы
#include <stdio.h>
#include <windows.h>
 
int main()
{
    printf("Cursor Position\n");
 
    GetDC(NULL); // дескриптор стола
    POINT p; // структура для координат
    while (1){
        GetCursorPos(&p);
        printf("x=%4ld y=%4ld\r",p.x,p.y);
        Sleep(40);
    }
    return 0;
}

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

  1. Подключение необходимых библиотек: stdio.h и windows.h.
  2. Создание функции main(), которая является точкой входа в программу.
  3. Вывод на консоль заголовка Cursor Position.
  4. Получение дескриптора стола с помощью функции GetDC(NULL).
  5. Объявление структуры POINT, которая будет использоваться для хранения координат курсора.
  6. Запуск бесконечного цикла while(1).
  7. Внутри цикла получение текущих координат курсора с помощью функции GetCursorPos(), передавая в нее указатель на структуру POINT.
  8. Вывод на консоль текущих координат курсора с помощью функции printf(), используя формат x=%4ld y=%4ld\r, где %4ld - это заполнитель для целого числа, а \r — символ возврата каретки, который перемещает курсор в начало текущей строки.
  9. Задержка выполнения программы на 40 миллисекунд с помощью функции Sleep(40).
  10. Повторение шагов 7-9 до тех пор, пока пользователь не прервет выполнение программы.
  11. Возврат 0 из функции main(), что означает успешное завершение программы.

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


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

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

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