lokicall
02-07-2007, 19:49
Hallo,
ich hab ein Programm geschrieben, welche getch benutzt um die Tasten abzufragen für ein Menue.
Für ein Abbruch habe ich die ESCAPE Taste definiert(da der Wert meines Wissens nirgends festgelegt wurde) hab ich den Standardcode 27 benutzt.
Nun warum muss ich um das Menue zu verlassen muss ich 2mal schnell hintereinander ESCAPE drücken, damit es funktioniert. Langsam einmal drücken hat keine Wirkung.
int ch;
#define ESCAPE 27
...
initscr();
curs_set(); /*funktioniert auch nicht*/
noecho();
raw();
keypad(stdsrc,TRUE);
...
while((ch=getch())!=ESCAPE) {
switch(ch) {
case KEY_UP:
printw("KEY UP");
break;
case KEY_DOWN:
printw("KEY DOWN");
break;
case KEY_LEFT:
printw("KEY LEFT");
break;
case KEY_RIGHT:
printw("KEY RIGHT");
break;
case KEY_PPAGE:
printw("KEY PAGEUP");
break;
case KEY_NPAGE:
printw("KEY PAGEDOWN");
break;
case 'q': case 'Q':
return EXIT_SUCCESS;
default:
printw("Falsche Taste");
break;
}
}
Als Betriebssystem NetBSD 4.0beta(auch auf 3.1 getestet).ncurses-5.5nb1
ich hab ein Programm geschrieben, welche getch benutzt um die Tasten abzufragen für ein Menue.
Für ein Abbruch habe ich die ESCAPE Taste definiert(da der Wert meines Wissens nirgends festgelegt wurde) hab ich den Standardcode 27 benutzt.
Nun warum muss ich um das Menue zu verlassen muss ich 2mal schnell hintereinander ESCAPE drücken, damit es funktioniert. Langsam einmal drücken hat keine Wirkung.
int ch;
#define ESCAPE 27
...
initscr();
curs_set(); /*funktioniert auch nicht*/
noecho();
raw();
keypad(stdsrc,TRUE);
...
while((ch=getch())!=ESCAPE) {
switch(ch) {
case KEY_UP:
printw("KEY UP");
break;
case KEY_DOWN:
printw("KEY DOWN");
break;
case KEY_LEFT:
printw("KEY LEFT");
break;
case KEY_RIGHT:
printw("KEY RIGHT");
break;
case KEY_PPAGE:
printw("KEY PAGEUP");
break;
case KEY_NPAGE:
printw("KEY PAGEDOWN");
break;
case 'q': case 'Q':
return EXIT_SUCCESS;
default:
printw("Falsche Taste");
break;
}
}
Als Betriebssystem NetBSD 4.0beta(auch auf 3.1 getestet).ncurses-5.5nb1