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