Nyilvánvaló tehát, hogy kell egy adatstruktúra, ami az egyes menüpontokra vonatkozó információkat tartja nyilván (a menüpont neve, a hozzá tartozó help-információ, a hozzárendelt kiválasztó billentyû, kiválasztották-e, milyen feladatot lát el, esetleges paraméter). A menüpontokat menülistákba kell szerveznünk. Egy ilyen listát ki kell egészítenünk a képernyõn való megjelenésre vonatkozó információkkal (milyen hosszú a lista, hány karakter széles, a listát tartalmazó doboz hol helyezkedik el a képernyõn, stb.), és megadhatjuk azt is, hogy egy adott menü milyen hierarchia szinten helyezkedik el a menü-fán.
A look-and-feel-re vonatkozó meggondolásokból következik, hogy az almenüket kezelõ menüfüggvényt ugyanolyan funkcióként érdemes felfogni, mint a programunk ténylegesen végrehajtandó egyes részeit. Igy tehát célszerû az egyes menülistákat megszámozni, és a menükezelõnk ezen szám alapján tudja eldönteni, melyik menülistát kell megjelenítenie és kezelnie. Természetesen az is célszerû, hogy az egyes menüpontok a végrehajtandó programrészletekre vonatkozó default paramétereket tartalmaznak, és a menüpont kiválasztásakor ezen paraméterrel hívja meg a menükezelõ a megfelelõ részprogramot.
Ilyen meggondolások mellett egy almenü megjelenítése belsõ vezérlési szerkezetként úgy nyivánul meg, hogy a menükezelõ függvény önmagát hívja meg úgy, hogy a rekurzív hívás alkalmával az almenü azonosítóját, mint paramétert használja.
Hogy valósítsuk meg egy adott menüponthoz tartozó
függvény aktivizálását? A válasz
igen egyszerû: indirekt függvényhívást
kell alkalmaznunk, azaz a menüpont leíró struktúrában
egy függvényre mutató pointermezõt kell deklarálnunk.
Az egyes menüpontok definiálásakor ezt a struktúramezõt
a ténylegesen meghívandó függvény címével
kell majd inicializálnunk.