Zdravím, lámu si nad tím hlavu už dost dlouho a nemůžu přijít, jak využít funkční klávesy F1-F12 v programu psaném v C. Potřebpoval bych poradit, jak udělat switch, kde by bylo F1 Npověda, F2 Nový atd (jedná se o konzolovou aplikaci).
Dík moc za rady.
Fórum › C / C++
Funkční klávesy v C/C++
Můžeš si napsat funkci, která vícekódové klávesy složí dohromady a tu pak používat.
Třeba F1 vrací (windows, getch) dvě hodnoty, 0 a 59 (0x00 a 0x3B), to spojíš dohromady, a aby to nekolidovalo s normálními klávesami, tak před to vrazíš třeba ještě jedničku a fičíš.
#define K_F1 0x01003B
#define K_F2 0x01003C
...
#define K_F11 0x01E085
#define K_F12 0x01E086
#define K_UP 0x01E048
...
int getkey()
{
int k;
switch (k = getch()) {
case 0x00: return 1 << 16 | k << 8 | getch();
case 0xE0: return 1 << 16 | k << 8 | getch();
default: return k;
}
}
switch (getkey()) {
case 'a': puts("a"); break;
case K_F1: puts("F1"); break;
}
Nebo úplně jinak, podle toho, co se ti pro tvé účely hodí.
Zjistit počet nových příspěvků
Přidej příspěvek
Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
Uživatelé prohlížející si toto vlákno
Uživatelé on-line: 0 registrovaných, 78 hostů
Podobná vlákna
Funkční analýza — založil Jano
Funkcni Python na SX1 — založil yaqwsx
Program na funkční analýzu — založil Jasper
Bez kódu, ale funkční? — založil Jorya
Funkční ikona v traybaru jak ??? — založil tonez
Moderátoři diskuze