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

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

Войти
Регистрация
Восстановить пароль
 
IamSCORPION
SysOp
40 / 39 / 1
Регистрация: 13.04.2009
Сообщений: 274
#1

При нажимани одной из клавиш - C++

17.06.2009, 19:56. Просмотров 799. Ответов 10
Метки нет (Все метки)

Как сделать чтобы при нажимани одной из клавиш ↑, ↓, →, ← выполнялись определенные операции?!

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

Написать программу-фильтр, которая при нажатии любых клавиш выводит на экран только буквы и цифры, при этом указывая, что выводится: буква или цифра. - C++
Помогите,плиз... Написать программу-фильтр, которая при нажатии любых клавиш выводит на экран только буквы и цифры, при этом указывая,...

Работа с клавиатурой, сочетания клавиш, блокировка клавиш - C++
Здравствуйте! Есть такая вот задачка: Разработать программу обработки прерывания от клавиатуры, которая должна: распознавать...

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

Как различить нажатие одноимённых курсорных клавиш (при выключенном NumLock)? - C++
1. В правой части клавиатуры - 2 группы курсорных клавиш: одна - переключается NumLock (цифры/курсор), вторая - всегда курсор. Как...

Как лучше отлавливать нажатия клавиш на клавиатуре при активном окне - C++
Здравствуйте.Делается проект Win32 на C++ с WinAPI.Подскажите пожалуйста (желательно с примерами) как лучше отлавливать нажатия на...

.NET 4.x В TextBox пишется две буквы вместо одной при нажатии клавиш - Visual Basic .NET
Здравствуйте! Недавно решил написать транслитератор для VB.NET 2010 и столкнулся с проблемой когда пользователь нажимает клавишу то пишется...

10
CyBOSSeR
Эксперт С++
2308 / 1681 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
17.06.2009, 20:03 #2
Конкретизируйте вопрос:
1. Среда разработки.
2. Тип программы: консольная(?), оконная. Если оконная, то с помощью какой технологии разрабатываете: Win32API, MFC, .Net.
Чем качественнее Вы зададите вопрос, тем быстрее и качественнее получите вопрос.
Как правильно задавать вопросы.
0
IamSCORPION
SysOp
40 / 39 / 1
Регистрация: 13.04.2009
Сообщений: 274
17.06.2009, 20:05  [ТС] #3
Microsoft Visual C++, Turbo C++
консольная
0
Nazz
WEB-developer
896 / 727 / 11
Регистрация: 12.03.2009
Сообщений: 2,802
Записей в блоге: 2
17.06.2009, 20:11 #4
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
42
43
44
45
46
        enum keys {UP = 72, DOWN = 80, LEFT=75, RIGHT=77, ESC=27};
                do
        {
                if (kbhit()){
                        if (!(key=getch())) key=getch();
                        switch (key)
                        {
                        case UP:
                                {
                                        setcolor(getbkcolor());
                                        circle(x,y,r);
                                        y=y-5;
                                        setcolor(GREEN);
                                        circle(x,y,r);
                                        break;
                                }
                        case DOWN:
                                {
                                        setcolor(getbkcolor());
                                        circle(x,y,r);
                                        y=y+5;
                                        setcolor(GREEN);
                                        circle(x,y,r);
                                        break;
                                }
                        case LEFT:
                                {
                                        setcolor(getbkcolor());
                                        circle(x,y,r);
                                        x=x-5;
                                        setcolor(GREEN);
                                        circle(x,y,r);
                                        break;
                                }
                        case RIGHT:
                                {
                                        setcolor(getbkcolor());
                                        circle(x,y,r);
                                        x=x+5;
                                        setcolor(GREEN);
                                        circle(x,y,r);
                                        break;
                                }
                        }
                }
        } while (key!=ESC);
В етой проге с помощю етих клавиш перемещается коло)))

Значение UP = 72 берём из таблицы кодов ASCII)))
1
IamSCORPION
SysOp
40 / 39 / 1
Регистрация: 13.04.2009
Сообщений: 274
17.06.2009, 20:57  [ТС] #5
Не получается(((
0
Nazz
WEB-developer
896 / 727 / 11
Регистрация: 12.03.2009
Сообщений: 2,802
Записей в блоге: 2
17.06.2009, 21:57 #6
Попробуй разобратся, вот те прога, посмотри как она работает на С++:

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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#include <graphics.h>
#include <conio.h>                          
#include <stdio.h>                          
void main()                                 
{
        enum keys {UP = 72, DOWN = 80, LEFT=75, RIGHT=77, ESC=27};
        int gdriver=DETECT,gmode;
        int x,y,r=20;
        int key=0;
        initgraph(&gdriver,&gmode,"");
        cleardevice();
        x=getmaxx()/2;
        y=getmaxy()/2;
        setcolor(GREEN);
        circle(x,y,r);
        do
        {
                if (kbhit()){
                        if (!(key=getch())) key=getch();
                        switch (key)
                        {
                        case UP:
                                {
                                        setcolor(getbkcolor());
                                        circle(x,y,r);
                                        y=y-5;
                    setcolor(RED);
                                        circle(x,y,r);
                                        break;
                                }
                        case DOWN:
                                {
                                        setcolor(getbkcolor());
                                        circle(x,y,r);
                                        y=y+5;
                                        setcolor(GREEN);
                                        circle(x,y,r);
                                        break;
                                }
                        case LEFT:
                                {
                                        setcolor(getbkcolor());
                                        circle(x,y,r);
                                        x=x-5;
                                        setcolor(GREEN);
                                        circle(x,y,r);
                                        break;
                                }
                        case RIGHT:
                                {
                                        setcolor(getbkcolor());
                                        circle(x,y,r);
                                        x=x+5;
                                        setcolor(GREEN);
                                        circle(x,y,r);
                                        break;
                                }
                        }
                }
        } while (key!=ESC);
        closegraph();
        clrscr();
}
1
IamSCORPION
SysOp
40 / 39 / 1
Регистрация: 13.04.2009
Сообщений: 274
18.06.2009, 21:29  [ТС] #7
С программой разобрался но не ясно откуда взялось это
C++
1
UP = 72, DOWN = 80, LEFT=75, RIGHT=77, ESC=27
В нете поюзал и не нашел(((
Скиньте пожалуста ссилку где это можно найти!
0
Padonok
14 / 14 / 1
Регистрация: 01.02.2009
Сообщений: 23
18.06.2009, 22:22 #8
Каждому элементу перечисляемой константы соответсвует опредиленное целочисленное значение. По умолчанию первый элемент имеет значение 0, а каждый последующий - на единицу большее. Важно помнить, что перечисляемые переменные на самом деле имеют тип unsigned int и соотвествует целочисленным беззнаковым переменным. Но иногда при работе с цветами, днями недели или другими подобными наборами значений неплохо иметь возможность называть эти значения по имени.
Вроде так я тоже новичок если что не так извиняй.
1
Nazz
WEB-developer
896 / 727 / 11
Регистрация: 12.03.2009
Сообщений: 2,802
Записей в блоге: 2
18.06.2009, 22:48 #9
IamSCORPION, я ж расказывал: цыфри-ето ASCII обозначение нужных клавиш, а сами названия- то ето ты сам даёш)))
1
IamSCORPION
SysOp
40 / 39 / 1
Регистрация: 13.04.2009
Сообщений: 274
19.06.2009, 00:25  [ТС] #10
Цитата Сообщение от Padonok Посмотреть сообщение
Каждому элементу перечисляемой константы соответсвует опредиленное целочисленное значение. По умолчанию первый элемент имеет значение 0, а каждый последующий - на единицу большее. Важно помнить, что перечисляемые переменные на самом деле имеют тип unsigned int и соотвествует целочисленным беззнаковым переменным. Но иногда при работе с цветами, днями недели или другими подобными наборами значений неплохо иметь возможность называть эти значения по имени.
Вроде так я тоже новичок если что не так извиняй.
Я в курсе

Цитата Сообщение от Nazz Посмотреть сообщение
IamSCORPION, я ж расказывал: цыфри-ето ASCII обозначение нужных клавиш, а сами названия- то ето ты сам даёш)))
Это я знаю))) К примеру 72 это в таблице M, а не UP)))Там нет цифр клавиш Tab, Ctrl, Shift, Delete, Insert, Esc, F1, F2,↑, ↓, →, ← и тд. Где их взять?!
0
Nazz
WEB-developer
896 / 727 / 11
Регистрация: 12.03.2009
Сообщений: 2,802
Записей в блоге: 2
19.06.2009, 12:17 #11
Цитата Сообщение от IamSCORPION Посмотреть сообщение
Это я знаю))) К примеру 72 это в таблице M, а не UP)))Там нет цифр клавиш Tab, Ctrl, Shift, Delete, Insert, Esc, F1, F2,↑, ↓, →, ← и тд. Где их взять?!
ты смотрел полную таблицу??? попробуй напишы на С++ програму, которая при нажатии клавишы буде показывать ее АSСII-код, или но оборот, при вводе кода виведет символ, который ему соответствует))) Ето тебе даст возможность посмотреть полную таблицу, которая есть в С++, а затем и найти нужный тебе код))) Ето делается с помощю стандартных фукций)))
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.06.2009, 12:17
Привет! Вот еще темы с ответами:

Отключение залипания клавиш при нажатии более 5 клавиш - Windows 7
Всем привет, у меня глупый вопрос. Как сделать, чтобы можно было зажимать хотябы 8 клавиш одновременно с адекватным считыванием с...

Нажатие двух клавиш одной - Windows
Объясните, как можно назначить на одну клавишу две другие, и чтоб в игре это действовало. Например, я жму w, а нажимаются одновременно d g....

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

Глобальный Hook - отлов нажатия одной из клавиш - Visual Basic .NET
Добрый вечер! Извините за ламерский вопрос. Проблема заключается в следующем. Мне нужно что бы программа глобально отзывалась на одну из...


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

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

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