Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.86
Игорь с++
437 / 460 / 16
Регистрация: 26.01.2011
Сообщений: 2,032
#1

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

30.03.2011, 20:08. Просмотров 2757. Ответов 4
Метки нет (Все метки)

Здравствуйте господа програмисты!!!Может кто нибудь написать элементарный исходник в консольном приложении когда нажимается левая кнопка он что нибудь пишет и так же для правой кнопки,если можно с коментариями,но если не охото хотя бы исходник.Пробывал разобраться сам,через объяснение в интернете,но что то не чего не вышло.
Заранее всем огромное спасибо!!!

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

Не обрабатываются события мыши в консоли - C++
Препод дал код, который ,как пример, показывает обработку событий мыши. Так вот в аудитории все работает как надо, а дома после запуска -...

Обработка нажатия клавиши UP - C++
enum key_codes {UP=38}; int_tmain (int argc, THCAR*argv) { keys() enum key_codes key; while (key!=27) { key=_getch(); if...

Обработка нажатия клавиши - C++
нужно задать нажатию клавиши enter другие функции: private: System::Void textBox1_TextChanged_1(System::Object^ sender,...

Простая обработка нажатия клавиши - C++
Знаю что подобные темы были но мне нужно попроще.Я учусь c++ и для закрепления своих знаний решил написать текстовый тетрис.Написать могу...

Обработка нажатия клавиши без подтвержения enter - C++
Здравствуйте, уважаемые программисты. Подскажите в чем проблема. Вывожу рисунок посредством команды dos в языке turbo c. Необходимо...

Клавиши F1-F12 в консоли, и работа с мышкой в консоли - C++
Я искал на сайте, но не нашел упоминания о том как обрабатывать и или узнавать где находится курсор мышки (и еще мне надо бы узнать нажатие...

4
fair7
9 / 9 / 0
Регистрация: 31.12.2010
Сообщений: 81
Записей в блоге: 1
03.06.2014, 23:31 #2
ты пример пришли, что у тебя там.
У меня есть несколько примеров интересных.
где отлавливается нажатие кнопок (левой, правой) и двойное нажатие, прокрутка колеса,
к сожалению не улавливает нажатие на колесо.
1
Убежденный
Ушел с форума
Эксперт С++
15701 / 7211 / 1139
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
Завершенные тесты: 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;
}
1
fair7
9 / 9 / 0
Регистрация: 31.12.2010
Сообщений: 81
Записей в блоге: 1
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; 
}
1
Игорь с++
437 / 460 / 16
Регистрация: 26.01.2011
Сообщений: 2,032
05.06.2014, 21:53  [ТС] #5
Всем большое спасибо ! Но уважаемые программисты внимательней смотрим на дату сообщение , особенно на год . За это время я уже нашёл подходящий способ . Всем большое спасибо ещё раз !!!
0
05.06.2014, 21:53
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.06.2014, 21:53
Привет! Вот еще темы с ответами:

проверка нажатия клавиши - C++
Всем привет, начал писать прогу и нет времени искать что либо в интернете... Кто помнит как как проверить что нажата клавиша 1 ?? Смысл...

Имитация нажатия клавиши - C++
Может кто помочь сделать прогу что бы она просто нажимала кнопку &quot;E&quot; с интервалом, 0,1 секунда, и включалась\выключалась по нажатию, на...

Ожидание нажатия клавиши - C++
А подскажите пожалуйста, как в С++ сделать так, чтобы программа, написанная в консольных приложениях, продолжала свою работу только после...

Выполнение до нажатия клавиши - C++
Как сделать в консольке, чтобы программа выполнялась до нажатия клавиши, при чём она должна работать даже не нажимая ничего...а не ждать...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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