bonjour,
voici un extrait de mon menu lance via un MainMenu(); dans le _main() :
short MainMenu()
{
char d[]="TITRE";
short int err_code = 0;
HANDLE FirstMenu;
FirstMenu = PopupNew (d, 0);
PopupAddText (FirstMenu, 0, "Parameters", 1);
PopupAddText (FirstMenu, -1, "Calendar", 2);
PopupAddText (FirstMenu, 0, "Ephemeris", 3);
PopupAddText (FirstMenu, 0, "Graphic View", 4);
PopupAddText (FirstMenu, -1, "Exit", 6);
PopupAddText (FirstMenu, 1, "Time", 10);
PopupAddText (FirstMenu, 1, "Location", 11);
PopupAddText (FirstMenu, 1, "Tools", 12);
PopupAddText (FirstMenu, 1, "New Object", 13);
PopupAddText (FirstMenu, 1, "Edit Object", 14);
.../...
while(err_code != -1)
{
err_code = PopupDo(FirstMenu, CENTER, CENTER, 0); // catch menu level
switch (err_code)
{
// Parameters menu
case 10:
if((err_code = EdTime(ptime)) != 0)
ErrMsg(MSG_ERR, err_code);
break;
case 11:
if((err_code = EdPlace(pplace)) != 0)
ErrMsg(MSG_ERR, err_code);
break;
case 12:
if((err_code = EdParam(pparam)) != 0)
ErrMsg(MSG_ERR, err_code);
break;
// Calendar menu
case 2:
if((err_code = Calend(ptime, pplace)) != 0)
ErrMsg(MSG_INFO, MSG_NIMP);
break;
// Ephemeris menu
case 30:
if((err_code = DrawingPosObj(SUN, ptime, pplace, pparam)) != 0)
ErrMsg(MSG_INFO, MSG_NIMP);
break;
case 31:
if((err_code = DrawingPosObj(MOON, ptime, pplace, pparam)) != 0)
ErrMsg(MSG_INFO, MSG_NIMP);
break;
case 32:
if((err_code = DrawingPosObj(MERCURY, ptime, pplace, pparam)) != 0)
ErrMsg(MSG_INFO, MSG_NIMP);
break;
case 33:
if((err_code = DrawingPosObj(VENUS, ptime, pplace, pparam)) != 0)
ErrMsg(MSG_INFO, MSG_NIMP);
break;
.../...
// EXIT menu
case 6:
HeapFree(FirstMenu);
err_code = -1; // exit(0);
break;
}
}
return(err_code);
}
voila, ca marche bien SAUF si l'utilisateur ETEINT la calculatrice via une 2nd ON alors que l'on a pas quite le programme. La ca se met en boucle infinie.... Comment faire ? Je n'ai pas envie d'alourdir mon code via un disable des touche 2nd et DIAM etc...
Comment faite vous dans vos programme ?
Le but est bien entendu de reafficher le menu principal en sortie des fonctions eventuellement appelee, SAUF si demande de fin de prog.
Amicalement,
Wolf


