Menu
Zdravím. Dnes vám ukážu, jak si vytvořit vlastní menu v jazyce C. Budeme potřebovat vytvořit soubor.h a napsat si do něj všechny funkce, co budeme potřebovat alias gotoxy,MyGetch a nějaké barvičky, abych nespamoval jen kódama, tak "jak si vytvořit tento soubor.h" je v následujícím videu.
Tak, teď už máme náš soubor a můžeme se pustit do psaní našeho menu.
#include "winitrix.h" // hlavičkový soubor.h #define POLOZKY_MENU 3 // pocet polozek v menu // funkce void menu(void); void vypis_menu(int, int); void hlava_menu(void); void item1(void); void item2(void); int main() { menu(); return 0; } void menu(void) // samotné menu { hlava_menu(); int pozice = 1; vypis_menu(1,1); int konec = 0; while(konec == 0) { if (kbhit()) { int Key; Key = MyGetch(); if(Key) { switch(Key) { case 27: //escape konec = 1; break; case 328: // up if (pozice > 1) pozice--; else pozice = POLOZKY_MENU; break; case 336: // down if(pozice < POLOZKY_MENU) pozice++; else pozice = 1; break; case 13: // enter switch(pozice) { case 1: item1(); break; case 2: item2(); break; case 3: clear(); konec = 1; } default: continue; } } vypis_menu(pozice,1); } } } void vypis_menu(int pozice,int i) // vypsání menu pole pomocí cyklu { char *polozky[] = {"item1","item2","end"}; for(i = 0; i < POLOZKY_MENU; i++) { gotoxy(1,3+i+i); if ((i+1)==pozice) color(2); else color(0); printf("%s\n",polozky[i]); } } void hlava_menu() { clear(); gotoxy(1,1); color(2); printf("M A I N M E N U"); // nadpis nebo titulek } void item1(void) // obsah položky číslo 1 { hlava_menu(); gotoxy(0,5); color(2); printf("item1\n"); getchar(); menu(); } void item2(void) // obsah položky číslo 2 { hlava_menu(); gotoxy(0,5); color(2); printf("item2\n"); getchar(); menu(); }
Přidávám video jak to má vypadat a jak to bude fungovat.
V kódu jsem měl prvně nekonečný cyklus, poté jsem ho nahradil cyklem s proměnnou konec, ve videu tato změna není. Je to tak přirozenější.
Tak to je vše, ani to nebylo tak těžké. Snad jsem vám pomohl.