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

Обработка события нажатия клавиши мыши в консоли - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.86
Игорь с++
 Аватар для Игорь с++
429 / 452 / 15
Регистрация: 26.01.2011
Сообщений: 2,029
30.03.2011, 20:08     Обработка события нажатия клавиши мыши в консоли #1
Здравствуйте господа програмисты!!!Может кто нибудь написать элементарный исходник в консольном приложении когда нажимается левая кнопка он что нибудь пишет и так же для правой кнопки,если можно с коментариями,но если не охото хотя бы исходник.Пробывал разобраться сам,через объяснение в интернете,но что то не чего не вышло.
Заранее всем огромное спасибо!!!

Добавлено через 1 час 39 минут
жаль конечно что не кто не знает.Но как есть,буду дальше ждать
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.03.2011, 20:08     Обработка события нажатия клавиши мыши в консоли
Посмотрите здесь:

C++ Выполнение до нажатия клавиши
C++ Клавиши F1-F12 в консоли, и работа с мышкой в консоли
C++ Обработка нажатия клавиши без подтвержения enter
проверка нажатия клавиши C++
Обработка нажатия клавиши UP C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
fair7
8 / 8 / 0
Регистрация: 31.12.2010
Сообщений: 81
03.06.2014, 23:31     Обработка события нажатия клавиши мыши в консоли #2
ты пример пришли, что у тебя там.
У меня есть несколько примеров интересных.
где отлавливается нажатие кнопок (левой, правой) и двойное нажатие, прокрутка колеса,
к сожалению не улавливает нажатие на колесо.
Убежденный
Системный программист
 Аватар для Убежденный
14175 / 6190 / 981
Регистрация: 02.05.2013
Сообщений: 10,296
Завершенные тесты: 1
03.06.2014, 23:51     Обработка события нажатия клавиши мыши в консоли #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
40
41
#include <iostream>
#include <Windows.h>
 
 
 
int main()
{
    using namespace std;
 
    HANDLE const hStdInput = GetStdHandle(STD_INPUT_HANDLE);
 
    DWORD Mode;
    GetConsoleMode(hStdInput, &Mode);
    SetConsoleMode(hStdInput, Mode | ENABLE_MOUSE_INPUT);
 
    for (;;)
    {
        WaitForSingleObject(hStdInput, INFINITE);
 
        INPUT_RECORD InRec;
        DWORD NumEvents;
        BOOL b = ReadConsoleInputW(hStdInput, &InRec, 1, &NumEvents);
 
        if ( (0 != NumEvents) && (MOUSE_EVENT == InRec.EventType) )
        {
            DWORD const BtnState = InRec.Event.MouseEvent.dwButtonState;
 
            if (BtnState & FROM_LEFT_1ST_BUTTON_PRESSED)
            {
                cout << "LEFT BUTTON" << endl;
            }
 
            if (BtnState & RIGHTMOST_BUTTON_PRESSED)
            {
                cout << "RIGHT BUTTON" << endl;
            }
        }
    }
 
    return 0;
}
fair7
8 / 8 / 0
Регистрация: 31.12.2010
Сообщений: 81
04.06.2014, 23:21     Обработка события нажатия клавиши мыши в консоли #4
ниже исходник работает и под Qt i Visual, но под Borland неа
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 <stdio.h>
#include <windows.h>
#include <iostream>
using namespace std;
 
int main(int argc, char* argv[])
{
    HANDLE hStdin; 
    DWORD cNumRead, fdwMode, fdwSaveOldMode, i; 
    INPUT_RECORD irInBuf[128];
    hStdin = GetStdHandle(STD_INPUT_HANDLE); 
    GetConsoleMode(hStdin, &fdwSaveOldMode)  ;     
    fdwMode = fdwSaveOldMode & ENABLE_MOUSE_INPUT; 
    SetConsoleMode(hStdin, fdwMode)  ;    
    while (1) 
    {  
        ReadConsoleInput(  hStdin,   irInBuf,  250,    &cNumRead) ;   
        for (i = 0; i < cNumRead; i++) 
        {
            if (irInBuf[i].EventType==MOUSE_EVENT) 
            {                    
                switch (irInBuf[i].Event.MouseEvent.dwEventFlags)
                {
                case MOUSE_MOVED: cout<<"Moved";
                    break;
                case DOUBLE_CLICK: cout<<"Double Click";
                    break;
                case MOUSE_WHEELED: cout<<"Wheel";
                    break;
                default: cout<<"Click (pressed or released)";
                    break;              
                }
                printf(" (X=%d, Y=%d)\n",  irInBuf[i].Event.MouseEvent.dwMousePosition.X,irInBuf[i].Event.MouseEvent.dwMousePosition.Y);
             }
        } 
    }
 
    return 0; 
}
Игорь с++
 Аватар для Игорь с++
429 / 452 / 15
Регистрация: 26.01.2011
Сообщений: 2,029
05.06.2014, 21:53  [ТС]     Обработка события нажатия клавиши мыши в консоли #5
Всем большое спасибо ! Но уважаемые программисты внимательней смотрим на дату сообщение , особенно на год . За это время я уже нашёл подходящий способ . Всем большое спасибо ещё раз !!!
Yandex
Объявления
05.06.2014, 21:53     Обработка события нажатия клавиши мыши в консоли
Ответ Создать тему
Опции темы

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