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

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

Войти
Регистрация
Восстановить пароль
 
Egor138
30 / 11 / 2
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2
#1

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

25.04.2013, 21:27. Просмотров 986. Ответов 12
Метки нет (Все метки)

Мне нужно усуществить следующее условие

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


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


Как такое осуществить???
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.04.2013, 21:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Действия при нажатой кнопке (C++):

2 действия на 1 кнопке - C++
Здравствуйте! Суть вот в чём. Есть 1 кнопка. Если на неё 1 раз нажать появляется messageBox с текстом "Первый текст". Если нажать...

В Visual studio при изменении текста на кнопке изменнения не вступают в силу - C++
Работая с Windows Form попытался изменить название кнопки в коде программы и впервый раз при запуске оно изменяется, а вот в последующие...

Как при вводе распознать действия и запомнить их порядок - C++
Как при вводе распознать действия и запомнить их порядок. X\rightarrow Y \wedge Z

Считывание нажатой клавиши - C++
Задача состоит в том, что бы при нажатии какой-либо клавиши производилось действие, в паскале я знаю как это сделать, при помощи процедуры...

Определить код нажатой клавиши - C++
Есть ли альтернатива для команды getch() в Visual C++ 2008??? А то нигде найти не могу Добавлено через 38 секунд А то getch() в...

Возврат значения нажатой клавиши - C++
Подскажите ассемблеровскую вставку для С++. Чтобы возвращалось значение нажатой клавиши

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

А какой нибудь пример?? Код?? не могли бы дать??
Игорь с++
434 / 457 / 16
Регистрация: 26.01.2011
Сообщений: 2,032
25.04.2013, 22:33 #4
Цитата Сообщение от Egor138 Посмотреть сообщение
клавиша была зажата
что ты имеешь виду "зажата" ? Пользователь нажал и держит ? Или просто нажата ?
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
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
27 / 27 / 1
Регистрация: 26.10.2012
Сообщений: 101
25.04.2013, 23:02 #7
если Sleep(3000) то ваша программа не будет ничего предпринимать 3 секунды
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
26.04.2013, 07:19 #8
kbhit() + getch() возможно
Egor138
30 / 11 / 2
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2
26.04.2013, 18:21  [ТС] #9
Цитата Сообщение от Tulosba Посмотреть сообщение
kbhit() + getch() возможно
А можете привести пример кода??
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
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
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
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
26.04.2013, 20:01 #12
Цитата Сообщение от Egor138 Посмотреть сообщение
Все практически как я хотел. Только если я нажму и отпущу кнопку, то выскакивает, что я нажал, а мне надо чтобы только при удержании именно в момен проверки
Удержание некоторое время?
Egor138
30 / 11 / 2
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2
26.04.2013, 22:44  [ТС] #13
Цитата Сообщение от Tulosba Посмотреть сообщение
Удержание некоторое время?
Чтобы он выводил надпись YES только и только тогда, когда кнопка нажата ИМЕННО в момент проверки, а не когда то там раньше была нажата а сейчас нет
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.04.2013, 22:44
Привет! Вот еще темы с ответами:

функция выдает код нажатой клавиши - C++
привет всем) подскажите пожалуйста есть ли такой оператор, который выдаст код нажатой клавиши,без нажатия клавиши ввода,т.е. нажали...

Как получить имя нажатой клавиши - C++
Может кто занет, есть ли какая-нибудь функция которая возвращает по коду нажатой клавиши ее название? Например, была нажат ESC - мы...

Определение нажатой клавиши,консольное приложение. - C++
Здравствуйте,есть программка которая при нажатии на одну из стрелок клавиатуры должна написать какая стрелка нажата: #include...

Прерывание бесконечного цикла с возвратом значения нажатой клавиши в main() - C++
Вкратце, в функции main() есть некий объект класса - scene, также есть бесконечно работающий цикл while(1), в котором вызывается...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
26.04.2013, 22:44
Ответ Создать тему
Опции темы

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