Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
zheleznyak_oleg
12 / 12 / 1
Регистрация: 03.01.2011
Сообщений: 76
Записей в блоге: 1
#1

Курсор - C++

20.07.2011, 20:14. Просмотров 625. Ответов 3
Метки нет (Все метки)

Как получить координаты курсора в консоли
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.07.2011, 20:14     Курсор
Посмотрите здесь:

Кнопки или курсор C++
LOCATE курсор C++
C++ Курсор
C++ Курсор
Курсор и Изображени C++
невидимый курсор C++
мигающий курсор C++
C++ нужно убрать курсор
C++ Какой курсор отображается?
C++ Курсор мыши
курсор в переменной FILE C++
Не получается перевести курсор C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kastaneda
Форумчанин
Эксперт С++
 Аватар для Kastaneda
4252 / 2784 / 219
Регистрация: 12.12.2009
Сообщений: 7,109
Записей в блоге: 1
Завершенные тесты: 1
20.07.2011, 20:22     Курсор #2
GetConsoleScreenBufferInfo()
xAtom
 Аватар для xAtom
910 / 735 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
20.07.2011, 21:28     Курсор #3
Вот набросал примерчик, рисования в консоли, здесь и получение координат и так далее.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <windows.h>
 
 
int main(void) {
 
   HANDLE  _out = GetStdHandle(STD_OUTPUT_HANDLE);
   HANDLE  _in   = GetStdHandle(STD_INPUT_HANDLE);
   DWORD   dr;
   TCHAR    spos[32];
 
   CONSOLE_SCREEN_BUFFER_INFO  info;
   ZeroMemory(&info, sizeof(CONSOLE_SCREEN_BUFFER_INFO));
   GetConsoleScreenBufferInfo(_out, &info);
 
   INPUT_RECORD  rec;
   while(1) {
             ZeroMemory(&rec, sizeof(INPUT_RECORD));
             ReadConsoleInput(_in, &rec, sizeof(INPUT_RECORD), &dr);
             FlushConsoleInputBuffer(_in);
             if(rec.EventType == MOUSE_EVENT) {
                 COORD pos = {
                        rec.Event.MouseEvent.dwMousePosition.X,
                        rec.Event.MouseEvent.dwMousePosition.Y
                 };
                 // если нажата левая кнопка мыши рисуем по координатам
                 if(rec.Event.MouseEvent.dwButtonState == FROM_LEFT_1ST_BUTTON_PRESSED) {
 
                       WriteConsoleOutputCharacter(_out, " ", 1U, pos, &dr);
                       WORD w = 224;
                       WriteConsoleOutputAttribute(_out, &w,  1U, pos, &dr);
                       wsprintf(spos, "X=%d, Y=%d", pos.X, pos.Y);
                       SetConsoleTitle(spos);  // выводим в заголовок  окна позицию курсора
 
                 }
             }
    }
 
   return 0;
}
Kastaneda
Форумчанин
Эксперт С++
 Аватар для Kastaneda
4252 / 2784 / 219
Регистрация: 12.12.2009
Сообщений: 7,109
Записей в блоге: 1
Завершенные тесты: 1
20.07.2011, 21:47     Курсор #4
Хм..., закоментировал строку:
C++
1
FlushConsoleInputBuffer(_in);
запускаю в MSVS кнопкой F5 (отладка) - программа не работает (т.е. работает, только ни чего не происходит). Запускаю комбинацией кнопок ctrl+F5 (запуск без отладки) - все работает.
Чего-то я не понимаю...
Yandex
Объявления
20.07.2011, 21:47     Курсор
Ответ Создать тему
Опции темы

Текущее время: 03:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru