Иамаше по форума 2-3 теми по въпроса.
Реализира се най добре с структура с която се описва менюто и поведението му.
Ето ти един жокер от нещо готово.
Това е написано доста грозно но по новите неща които съм правил са по трудни за разбиране.
Ще пробвам да обясня идеята.
struct MenuStr
{
char __flash *String; Това е името на подменюто
char __flash *StringHead; Това се изписва като хедър на съответното меню
char ConfigA; Това и следващото съдържат флагове и параметри на менюто
char ConfigB;
char P1; P1-P7 Параметри на менюто
char P2;
char P3;
char P4;
char P5;
char P6;
char P7;
char MenuFunction;
}
MenuStackStr се ползва за да съхраниш състоянието на менютата преди да отвориш следващото подменю и възстановяване на най горното след затварянето му.
Как изглежда като картинка може да видиш в подфорума за логическия анализатор. Там в някоя от темите имаше картинки.
Така на C беше първия вариант на това меню.
Това на картинката е вече на C++ и повече не съм реализирал меню на C но идеята е същата и при C++.