salut perso j'utilise aussi une methode avec un switch case dans le loop et une variable qui change en fonction du menu ou on est!
exemple :
int selecteur_menu;
switch (selecteur_menu){
case 1 : fonction_aff_principale(); break;
case 11 : fonction_sous_aff_principale1(); break;
case 12 : fonction_sous_aff_principale2(); break;
case 2 : fonction_aff_menu2(); break;
case 21 : fonction_sous_aff_menu21(); break;
case 22 : fonction_sous_aff_menu22(); break;
etc...
les fonction etant comme dit skywood des fonction de dessin par example
avantage un simple retour arriere donne
if (appuis){selecteur_menu=selecteur_menu/10;// et hop on retourne sur le menu precedant
voila si sa peut t'aider !