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

Действия при нажатой кнопке - C++

Восстановить пароль Регистрация
 
Egor138
 Аватар для Egor138
30 / 11 / 2
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2
25.04.2013, 21:27     Действия при нажатой кнопке #1
Мне нужно усуществить следующее условие

C++
1
если (клавиша зажата) то выполнять что то


К примеру вызывается функция. Если коавиша зажата то пишет клавиша была зажата в момент работы функции, а если нет то ничего не происходит..


Как такое осуществить???
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.04.2013, 21:27     Действия при нажатой кнопке
Посмотрите здесь:

Считывание нажатой клавиши C++
C++ функция выдает код нажатой клавиши
Определить код нажатой клавиши C++
Возврат значения нажатой клавиши C++
C++ Как получить имя нажатой клавиши
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
tadom
 Аватар для tadom
13 / 13 / 0
Регистрация: 28.03.2013
Сообщений: 22
25.04.2013, 21:49     Действия при нажатой кнопке #2
Все зависит от среды разработки. В общем случае нужно добавить к кнопке обработчик собития (onClick) и в нем визвать требуему функцию. Фактически обработчик ето еще одна функция.
Egor138
 Аватар для Egor138
30 / 11 / 2
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2
25.04.2013, 22:18  [ТС]     Действия при нажатой кнопке #3
Цитата Сообщение от tadom Посмотреть сообщение
Все зависит от среды разработки. В общем случае нужно добавить к кнопке обработчик собития (onClick) и в нем визвать требуему функцию. Фактически обработчик ето еще одна функция.
Это простое консольное приложение.

А какой нибудь пример?? Код?? не могли бы дать??
Игорь с++
 Аватар для Игорь с++
429 / 452 / 15
Регистрация: 26.01.2011
Сообщений: 2,029
25.04.2013, 22:33     Действия при нажатой кнопке #4
Цитата Сообщение от Egor138 Посмотреть сообщение
клавиша была зажата
что ты имеешь виду "зажата" ? Пользователь нажал и держит ? Или просто нажата ?
Silvestr1994
 Аватар для Silvestr1994
27 / 27 / 1
Регистрация: 26.10.2012
Сообщений: 101
25.04.2013, 22:36     Действия при нажатой кнопке #5
вот пример того чего вы хотите
C++
1
2
3
4
if(getch() == 27)
{
  exit(1);
}
27 это в аски кодах кнопка ECS для getch() library #include <conio.h>
Egor138
 Аватар для Egor138
30 / 11 / 2
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2
25.04.2013, 22:49  [ТС]     Действия при нажатой кнопке #6
Цитата Сообщение от Silvestr1994 Посмотреть сообщение
вот пример того чего вы хотите
C++
1
2
3
4
if(getch() == 27)
{
  exit(1);
}
27 это в аски кодах кнопка ECS для getch() library #include <conio.h>

Ну не совсем


C++
1
2
3
4
5
6
Sleep(3000);
 
if(getch() == 27)   std::cout<<"YES";
else                std::cout<<"NO";
 
_getche();
Здесь я жду 3 секунды и пока я не нажму что-то, ничего происходить не будет.
А мне нужно чтобы по исткчению 3 секунд он сразу же вывел NO если в клавиша не нашата и YES если клавиша нажата. Тоесть он не ждет пока я нажму, а просто проверяет нажаа ли или нет

КАК??
Silvestr1994
 Аватар для Silvestr1994
27 / 27 / 1
Регистрация: 26.10.2012
Сообщений: 101
25.04.2013, 23:02     Действия при нажатой кнопке #7
если Sleep(3000) то ваша программа не будет ничего предпринимать 3 секунды
Tulosba
:)
Эксперт C++
4377 / 3220 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
26.04.2013, 07:19     Действия при нажатой кнопке #8
kbhit() + getch() возможно
Egor138
 Аватар для Egor138
30 / 11 / 2
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2
26.04.2013, 18:21  [ТС]     Действия при нажатой кнопке #9
Цитата Сообщение от Tulosba Посмотреть сообщение
kbhit() + getch() возможно
А можете привести пример кода??
Tulosba
:)
Эксперт C++
4377 / 3220 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
26.04.2013, 18:25     Действия при нажатой кнопке #10
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include "stdafx.h"
#include <conio.h>
#include <iostream>
 
int main()
{
    while(1)
    {
        if( kbhit() )
        {
            int key = getch();
            if( key == 27 )
            {
                std::cout << "Esc pressed" << std::endl;
            }
        }
    }
}
Egor138
 Аватар для Egor138
30 / 11 / 2
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2
26.04.2013, 19:39  [ТС]     Действия при нажатой кнопке #11
Цитата Сообщение от Tulosba Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include "stdafx.h"
#include <conio.h>
#include <iostream>
 
int main()
{
    while(1)
    {
        if( kbhit() )
        {
            int key = getch();
            if( key == 27 )
            {
                std::cout << "Esc pressed" << std::endl;
            }
        }
    }
}

Все практически как я хотел. Только если я нажму и отпущу кнопку, то выскакивает, что я нажал, а мне надо чтобы только при удержании именно в момен проверки
Tulosba
:)
Эксперт C++
4377 / 3220 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
26.04.2013, 20:01     Действия при нажатой кнопке #12
Цитата Сообщение от Egor138 Посмотреть сообщение
Все практически как я хотел. Только если я нажму и отпущу кнопку, то выскакивает, что я нажал, а мне надо чтобы только при удержании именно в момен проверки
Удержание некоторое время?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.04.2013, 22:44     Действия при нажатой кнопке
Еще ссылки по теме:

Определение нажатой клавиши,консольное приложение. C++
C++ В Visual studio при изменении текста на кнопке изменнения не вступают в силу
C++ Как при вводе распознать действия и запомнить их порядок

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

Или воспользуйтесь поиском по форуму:
Egor138
 Аватар для Egor138
30 / 11 / 2
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2
26.04.2013, 22:44  [ТС]     Действия при нажатой кнопке #13
Цитата Сообщение от Tulosba Посмотреть сообщение
Удержание некоторое время?
Чтобы он выводил надпись YES только и только тогда, когда кнопка нажата ИМЕННО в момент проверки, а не когда то там раньше была нажата а сейчас нет
Yandex
Объявления
26.04.2013, 22:44     Действия при нажатой кнопке
Ответ Создать тему
Опции темы

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