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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 25, средняя оценка - 4.68
GAME
23 / 23 / 3
Регистрация: 31.10.2009
Сообщений: 199
#1

Одинаковые коды клавиш-стрелочек - C++

31.10.2009, 01:12. Просмотров 3221. Ответов 2
Метки нет (Все метки)

Есть задача написать меню . В консольном приложении.
Состоит из 6ти пунктов(строчек)
Выбор строчи с помощью клавиш вверх вниз , потверждение с пом-ю ентера.
Всё написал , должно работать. И вдруг узнаю что у всех клавиш курсора одинаковый код 224 =(
что делать.
Данная фун-я выводит массив , раннее заданный и выделяет выбранную строчку зелёным О_о.
При нажатии Стрелочки вниз должна загораться строчка ниже (выделяться зелёным).А при нажатии вверх - соответственно строчка выше. При нажатии ЕНТЕр фун-я завершаеться, возвращая номер выбраной строкаи ( для стрелочки вверх недописал =( т.к. код совпадает со стрелочкой вниз )
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
char fdisplay(int n)
{
    HANDLE SOUT=GetStdHandle(STD_OUTPUT_HANDLE);
    int stp;
    stp=0;
    int klav;
    klav=0;
    printf("\n\n");
    while(stp!=6)
    {
        
        if (stp==n) 
        {
            SetConsoleTextAttribute(SOUT,10);
            printf(" %i", stp+1);printf(" - %s", name_f[stp]);
            SetConsoleTextAttribute(SOUT,7);
        }                   
        if (stp!=n) 
        {
            printf(" %i", stp+1);
            printf(" - %s", name_f[stp]);
        }
        printf("\n");
        stp++;  
    }
r:  klav=getch();
        switch(klav)
        {
        case 13 : return n;
 
        case [COLOR="Red"]224[/COLOR]: {system("cls"); n++;fdisplay(n);}
        default : goto r;
        }       
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.10.2009, 01:12
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Одинаковые коды клавиш-стрелочек (C++):

Не совпадают коды клавиш - C++
switch (key) { case 101 : dir=0; break; case 102 : dir=1; break; case 100 : dir=2;

Коды специальных клавиш клавиатуры - C++
if(я нажимаю "F1") { cout << "Hello " << endl; }

Почему одинаковые коды работают по разному? - C++
Всем привет! У меня довольно необычная проблема. Суть её в том, что я написал программу по аналогии с чужой программой. Однако несмотря...

Коды клавиш и обработка событий клавиатуры в консоли - C++
Многие часто спрашивают один и тот же вопрос по поводу обработки событий нажатия клавиш в консоли. вот простейший пример перехвата: ...

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

Коды клавиш - Delphi
Код клавиши: Label1.Caption := Label1.Caption+ IntToStr(Key); Не могу вспомнить как не код символа а сам символ в лейбл записать?

2
niXman
Эксперт С++
3139 / 1451 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
31.10.2009, 01:24 #2
GAME, Вызови "getch()" дважды подряд, и используй значение прочитанное во второй раз.
1
GAME
23 / 23 / 3
Регистрация: 31.10.2009
Сообщений: 199
31.10.2009, 12:24  [ТС] #3
Огромнейшее спасибо !!! помогло )
Значение для стрелочки вверх 72 , вниз 80 .
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.10.2009, 12:24
Привет! Вот еще темы с ответами:

Коды клавиш - Delphi
Всем доброе время суток, не подскажите коды сочетаний клавиш "Ctrl+C" и "Ctrl+V", и как его правильно вснуть...

коды клавиш б, ю, ё - C++ Qt
Добрый день, пишу приложение, в котором при нажатии на клавиатуру, соответствующие символы, должны отображаться на экране. Для этого...

коды клавиш - Ноутбуки
отличаются ли коды клавиш PgUp и PgDn на ноутбуке и обычной клавиатуре? по-моему, на ноутбуке - это 33 и 34, а на обычной клаве другие. или...

Коды клавиш - Turbo Pascal
Всем привет! Помогите, пожалуйста... Коды клавиши F1 и ';' совпадают! Как их отличать? Добавлено через 9 минут Я имею в иду,...


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

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

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