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

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

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

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

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

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

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

использование клавиш C++
C++ Определить, может ли при перестановке строк одной матрицы получится вторая
C++ Как различить нажатие одноимённых курсорных клавиш (при выключенном NumLock)?
РЕКУРСИЯ-----дано натуральное число N. выведите все цифры по одной, в обратном порядке, разделяя их пробелами или новыми строками. При решении этой за C++
Как лучше отлавливать нажатия клавиш на клавиатуре при активном окне C++
Как сделать так чтобы при изменении одной переменной изменялась другая? C++
Выводятся две строки подряд при выводе лишь одной C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CyBOSSeR
Эксперт C++
2299 / 1669 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
17.06.2009, 20:03     При нажимани одной из клавиш #2
Конкретизируйте вопрос:
1. Среда разработки.
2. Тип программы: консольная(?), оконная. Если оконная, то с помощью какой технологии разрабатываете: Win32API, MFC, .Net.
Чем качественнее Вы зададите вопрос, тем быстрее и качественнее получите вопрос.
Как правильно задавать вопросы.
IamSCORPION
SysOp
38 / 37 / 1
Регистрация: 13.04.2009
Сообщений: 274
17.06.2009, 20:05  [ТС]     При нажимани одной из клавиш #3
Microsoft Visual C++, Turbo C++
консольная
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)))
IamSCORPION
SysOp
38 / 37 / 1
Регистрация: 13.04.2009
Сообщений: 274
17.06.2009, 20:57  [ТС]     При нажимани одной из клавиш #5
Не получается(((
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();
}
IamSCORPION
SysOp
38 / 37 / 1
Регистрация: 13.04.2009
Сообщений: 274
18.06.2009, 21:29  [ТС]     При нажимани одной из клавиш #7
С программой разобрался но не ясно откуда взялось это
C++
1
UP = 72, DOWN = 80, LEFT=75, RIGHT=77, ESC=27
В нете поюзал и не нашел(((
Скиньте пожалуста ссилку где это можно найти!
Padonok
14 / 14 / 1
Регистрация: 01.02.2009
Сообщений: 23
18.06.2009, 22:22     При нажимани одной из клавиш #8
Каждому элементу перечисляемой константы соответсвует опредиленное целочисленное значение. По умолчанию первый элемент имеет значение 0, а каждый последующий - на единицу большее. Важно помнить, что перечисляемые переменные на самом деле имеют тип unsigned int и соотвествует целочисленным беззнаковым переменным. Но иногда при работе с цветами, днями недели или другими подобными наборами значений неплохо иметь возможность называть эти значения по имени.
Вроде так я тоже новичок если что не так извиняй.
Nazz
WEB-developer
896 / 727 / 11
Регистрация: 12.03.2009
Сообщений: 2,802
Записей в блоге: 2
18.06.2009, 22:48     При нажимани одной из клавиш #9
IamSCORPION, я ж расказывал: цыфри-ето ASCII обозначение нужных клавиш, а сами названия- то ето ты сам даёш)))
IamSCORPION
SysOp
38 / 37 / 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,↑, ↓, →, ← и тд. Где их взять?!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.06.2009, 12:17     При нажимани одной из клавиш
Еще ссылки по теме:

Работа с клавиатурой, сочетания клавиш, блокировка клавиш C++
C++ Почему выводится один и тот же адрес памяти при одновременных запусках одной программы
Написать программу которая при нажатии клавиш:правый Shift+ правый Alt блокировала бы клавишу 9 на клавиатуре. C++
Сохранить в одной коллекции несколько объектов классов одной ветви иерархии C++
C++ Почему-то при соответствующих нажатиях клавиш не выдает "Ошибка ввода" и просто закрывает экран консоли

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

Или воспользуйтесь поиском по форуму:
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-код, или но оборот, при вводе кода виведет символ, который ему соответствует))) Ето тебе даст возможность посмотреть полную таблицу, которая есть в С++, а затем и найти нужный тебе код))) Ето делается с помощю стандартных фукций)))
Yandex
Объявления
19.06.2009, 12:17     При нажимани одной из клавиш
Ответ Создать тему
Опции темы

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