Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.58/26: Рейтинг темы: голосов - 26, средняя оценка - 4.58
32 / 13 / 3
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2
1

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

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

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

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


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


Как такое осуществить???
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.04.2013, 21:27
Ответы с готовыми решениями:

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

Собтия при нажатой кнопке
Я немножко знаю Qt,а ситуация в следующем.У меня имеется окно программы, в нём кнопки,которые...

Событие MouseMove при нажатой кнопке
Здравствуйте уважаемые программисты. Вот есть такой код: procedure...

Рисование при нажатой кнопке мыши
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y:...

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

А какой нибудь пример?? Код?? не могли бы дать??
0
479 / 471 / 63
Регистрация: 26.01.2011
Сообщений: 2,033
25.04.2013, 22:33 4
Цитата Сообщение от Egor138 Посмотреть сообщение
клавиша была зажата
что ты имеешь виду "зажата" ? Пользователь нажал и держит ? Или просто нажата ?
0
27 / 27 / 11
Регистрация: 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>
0
32 / 13 / 3
Регистрация: 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 если клавиша нажата. Тоесть он не ждет пока я нажму, а просто проверяет нажаа ли или нет

КАК??
0
27 / 27 / 11
Регистрация: 26.10.2012
Сообщений: 101
25.04.2013, 23:02 7
если Sleep(3000) то ваша программа не будет ничего предпринимать 3 секунды
0
:)
Эксперт С++
4763 / 3257 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
26.04.2013, 07:19 8
kbhit() + getch() возможно
0
32 / 13 / 3
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2
26.04.2013, 18:21  [ТС] 9
Цитата Сообщение от Tulosba Посмотреть сообщение
kbhit() + getch() возможно
А можете привести пример кода??
0
:)
Эксперт С++
4763 / 3257 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
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;
            }
        }
    }
}
1
32 / 13 / 3
Регистрация: 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;
            }
        }
    }
}

Все практически как я хотел. Только если я нажму и отпущу кнопку, то выскакивает, что я нажал, а мне надо чтобы только при удержании именно в момен проверки
0
:)
Эксперт С++
4763 / 3257 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
26.04.2013, 20:01 12
Цитата Сообщение от Egor138 Посмотреть сообщение
Все практически как я хотел. Только если я нажму и отпущу кнопку, то выскакивает, что я нажал, а мне надо чтобы только при удержании именно в момен проверки
Удержание некоторое время?
0
32 / 13 / 3
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2
26.04.2013, 22:44  [ТС] 13
Цитата Сообщение от Tulosba Посмотреть сообщение
Удержание некоторое время?
Чтобы он выводил надпись YES только и только тогда, когда кнопка нажата ИМЕННО в момент проверки, а не когда то там раньше была нажата а сейчас нет
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.04.2013, 22:44

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Написать программу для семисегментного индикатора, чтобы при отжатой кнопке горел символ L, а при нажатой П
Atmega 16, AtmelStudio. Индикатор с общим анодом, кнопка на PC5, на PC6 неизвестное...

Cобытие MouseMove при нажатой левой кнопке мыши
Сделал у PictureBox событие MouseMove. Если просто провести мышкой над PictureBox все срабатывает,...

Зафиксировать цвет блока при нажатой радио-кнопке
Всем привет. Есть блок &lt;label&gt;. В блоке находится радиокнопка. При нажатии на блок активируется...

Реализация перемещения окна при нажатой кнопке мышки
Создаю свое окно.. hWndMyWin = CreateWindow(WCMyWin,&quot;MyWin&quot;,WS_VISIBLE|WS_POPUP,...


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

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

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